class Solution {
public:
vector<int> sortArrayByParityII(vector<int>& A) {
int j;
for(int i=0;i < A.size();i++){
if( ( (i%2==0) && (A[i]%2==0)) || ( (i%2==1) && (A[i]%2==1)) ) continue;//记住以后不要再遍历中进行i++
else if( (i%2==0) && (A[i]%2==1) ){
j=i+1;
while(A[j]%2==1)
j++;
swap(A[i],A[j]);
}
else {
j=i+1;
while(A[j]%2==0)
j++;
swap(A[i],A[j]);
}
}
return A;
}
};
这道题居然为难了我两个小时。第一个问题是用了I++,结果是当i=0时直接跳到了i=2,直接就漏了I=1的情况,在最后添加的问题上居然用了A[i]%2==2,来判断这个是否为偶数,我的天,越改越错。