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];
        
    }
};
上一篇下一篇

猜你喜欢

热点阅读