Leetcode __922. 按奇偶排序陣列 II
阿新 • • 發佈:2018-12-15
問題描述
給定一個非負整數陣列 A, A 中一半整數是奇數,一半整數是偶數。 對陣列進行排序,以便當 A[i] 為奇數時,i 也是奇數;當 A[i] 為偶數時, i 也是偶數。 你可以返回任何滿足上述條件的陣列作為答案。
示例: 輸入:[4,2,5,7] 輸出:[4,5,2,7] 解釋:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也會被接受。
提示: 2 <= A.length <= 20000 A.length % 2 == 0 0 <= A[i] <= 1000
解題思路
- 按部就班,先分別取奇數偶數值,分別排序,再組裝到同一陣列中返回
實現
class Solution { public int[] sortArrayByParityII(int[] A) { if(A.length==0||A==null){ return new int[0]; } int[] odd = new int[A.length/2];//奇數 int[] even = new int[A.length/2];//偶數 int o=0; int e =0; for(int i=0;i<A.length;i++){ if(A[i]%2==0){ even[e++]=A[i]; }else { odd[o++]=A[i]; } } Arrays.sort(even); Arrays.sort(odd); int r =0; int w=0; for (int i =0;i<A.length;i=i+2){ A[i]=even[r++]; A[i+1]=odd[w++]; } return A; } }