1. 程式人生 > >劍指offer(13) 調整陣列順序使奇數位於偶數前面

劍指offer(13) 調整陣列順序使奇數位於偶數前面

題目描述
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
解題思路
程式碼的完整性
這個題呢,需要調整奇偶數的順序,而且原先的相對位置不變。
頭指標從左向右遍歷,直至遇到第一個偶數,將偶數取出,尾插到陣列中。

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        vector<int>::iterator even = array.begin();
        int size=array.size();
        if(size<=1) return ;
        while(size)
        {
            if(*even%2==0)
            {
                int tmp=*even;
                array.erase(even);
                array.push_back(tmp);
            }
            else
                even++;
            size--;
        }
    }
};