給定一個非負整數數組 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 n=A.length,odd=1,even=0;//奇數位置指針,偶數位置指針while (odd<n&&even<n){while (odd<n&&A[odd]%2==1) odd+=2;//找出裝著偶數的奇數位置while (even<n&&A[even]%2==0) even+=2;//找出裝著奇數的偶數位置if(odd>=n||even>=n) break;int temp=A[odd];//交換兩個位置的元素A[odd]=A[even];A[even]=temp;odd+=2;//前進到下一個位置even+=2;}return A;}
}