刷題筆記10——令整數陣列的奇數位於前半部分,偶數置於後半部分
阿新 • • 發佈:2018-12-20
題目描述
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
方法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();
}
}
};