劍指offer_調整數組順序呢使奇數位於偶數前面


原題描述:

        輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於位於數組的后半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

思路:

        使用空間換時間的思想。oddArray用來存放array中所有的順序奇數,evenArray用來存放array中所有的順序偶數,最后再把奇數先放入array中,然后把偶數放入array中即可。

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        if(array.size()==0||array.size()==1) return;
        vector<int>oddArray;
        vector<int>evenArray;
        for(int i=0;i<array.size();i++){
            if(array[i]%2==1) oddArray.push_back(array[i]);
            else evenArray.push_back(array[i]);
        }
        for(int i=0;i<oddArray.size();i++) array[i]=oddArray[i];
        for(int i=0;i<evenArray.size();i++) array[i+oddArray.size()]=evenArray[i];
    }
};



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com