905. 按奇偶排序数组
1.题目描述
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。
示例:
2.思路
维护两个指针,第一个指针指向数组的第一个数字,第二个指针指向最后一个数字,如果第一个指针指向的数字是奇数,第二个指针指向的数字是偶数则交换这两个数字。
3.代码
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& A) {
vector<int> res;
if(A.empty()){
return res;
}
int begin = 0;
int end = A.size()-1;
while(begin < end){
while(begin < end && (A[begin] & 1) == 0){//直到遇到奇数
begin++;
}
while(begin < end && (A[end] & 1) == 1){//直到遇到偶数
end--;
}
if(begin < end){
swap(A[begin],A[end]);
}
}
return A;
}
};
4.复杂度分析
时间复杂度:O(n)
空间复杂度:O(1)
来源:CSDN
作者:overlordmax
链接:https://blog.csdn.net/jiangdongxiaobawang/article/details/103976763