题目描述
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
C++
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& A) {
/*
意思就是将所有偶数放在前边;
奇数放在后边;
类似于快速排序的一次划分?所以用双指针
*/
int i=0;
int j=A.size()-1;
while(i<j){
while(A[i]%2==0&&i<A.size()-1){
//起初这里没有加 i<A.size()-1 就一直报内存溢出的错,并且i<A.size()也不可以,
//比如对于对于全是偶数的情况,若i走到最后一个元素,还会加1,就越界了
i++;
}
while(A[j]%2==1 && j>0){
j--;
}
if(i<j){
swap(A[i],A[j]);
}
}
return A;
}
};