题目
给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
示例:
输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
提示:
1 <= A.length <= 5000
0 <= A[i] <= 5000
思路
1、两次遍历。第一次将偶数放入数组中,第二次将奇数放入数组中。
2、一次遍历。新建一个和A一样大小的数组res初始化为0,将偶数放入前面,奇数放入后面。
实现方法
一、两次遍历
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& A) {
vector<int> res;
for(int k:A){
if(k%2==0)
res.push_back(k);
}
for(int k:A){
if(k%2==1)
res.push_back(k);
}
return res;
}
};
二、一次遍历。
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& A) {
vector<int> res(A.size(),0);
int l=0,r=A.size();
for(int i=0;i<A.size();i++){
if(A[i]%2==0)
res[l++]=A[i];
else
res[--r]=A[i];
}
return res;
}
};