22.调整数组是奇数位于偶数前面
2019-07-31 本文已影响0人
HamletSunS
题意:如题目
思路:本题只要求调整,不要求顺序,那么采用碰撞指针发或者定位索引法(也可认为是滑动窗口)即可完成。复杂度为O(n)。当然也可以利用空间降低算法复杂性,比如开辟新的数组,去记录谁是奇数谁是偶数,再拼接
代码:
class Solution {
public:
void reOrderArray(vector<int> &array) {
int n=array.size();
if(n<2)
return ;
vector<int> odd;
int cur=0;
for(int i=0;i<n;++i){
if(array[i]%2){
array[cur++]=array[i];
}
else
odd.push_back(array[i]);
}
for(int i=0;i<odd.size();i++)
array[cur++]=odd[i];
}
};