1. 程式人生 > >刷題筆記10——令整數陣列的奇數位於前半部分,偶數置於後半部分

刷題筆記10——令整數陣列的奇數位於前半部分,偶數置於後半部分

題目描述

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

方法1:佇列

由於要保證陣列的相對位置不變,於是遍歷陣列元素,如果是奇數的,置於佇列q1,偶數置於佇列q2 用push方法入隊 用pop方法出隊 用front方法訪問隊首元素 用back方法訪問隊尾元素 用size方法訪問佇列長度

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        queue<
int> q1; queue<int> q2; for(auto i : array) { if(i % 2 == 1) q1.push(i); if(i % 2 == 0) q2.push(i); } array.clear(); while(q1.size() != 0) { array.push_back(q1.front()); q1.
pop(); } while(q2.size() != 0) { array.push_back(q2.front()); q2.pop(); } } };