一开始怪自己蠢, 只想到i++,j++的方法. 后来看了题解, 才知道用+=2最方便.
这样这个题目思路比较简单了. 只需要分别找到偶数位和奇数位不合条件的数, 交换即可.
class Solution {
public int[] sortArrayByParityII(int[] A) {
int n = A.length;
int x = 0;
int y = 1;
while(x < n && y < n)
{
while(x < n && A[x]%2 == 0 )
x += 2;
while(y < n && A[y]%2 == 1)
y += 2;
if(x >=n || y>= n)return A;
int t = A[x];
A[x] = A[y];
A[y] = t;
}
return A;
}
}