按奇偶排序陣列 II
題目:
給定一個非負整數陣列 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] 也會被接受,
解題思路:用雙指標分別指向奇數和偶數,再用一個新陣列依次保存奇偶數
class Solution {
public int[] sortArrayByParityII(int[] A) {
int ans[] = new int[A.length];
int i = 0, j = 0, cur = 0;
while(A[i] % 2 == 0) i++; //i指向奇數
while(A[j] % 2 == 1) j++; //j指向偶數
for(; cur < ans.length; cur++) {
if(cur % 2 == 0) {
ans[cur] = A[j++];
while(j < ans.length && A[j] % 2 == 1) j++;
} else {
ans[cur] = A[i++];
while(i < ans.length && A[i] % 2 == 0) i++;
}
}
return ans;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/216357.html
標籤:其他
