调整数组顺序奇数前偶数后

    xiaoxiao2022-07-03  129

    题目

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

    思路

    思路:开两个队列,分别为queue1和queue2;轮询数组,把奇数放进queue1,把偶数放进queue2。 然后把queue1和queue2放进vector

    示例

    输入:123456 输出:135246

    代码

    #include <iostream> #include <vector> #include <queue> using namespace std; class Solution { public: // 思路:开两个队列,分别为queue1和queue2;轮询数组,把奇数放进queue1,把偶数放进queue2。 // 然后把queue1和queue2放进vector void reOrderArray(vector<int> &array) { queue<int> odd,even; for (int i = 0; i < array.size() ; ++i) { if (array[i]%2 == 0) even.push(array[i]); else if (array[i]%2 == 1) odd.push(array[i]); } int number(0); while (!odd.empty()){ array[number] = odd.front(); odd.pop(); number ++ ; } while (!even.empty()){ array[number] = even.front(); even.pop(); number ++ ; } } }; int main(){ vector<int> test = {1,2,3,4,5,6}; Solution re; re.reOrderArray(test); for (int i = 0; i < test.size() ; ++i) { cout << test[i] ; } return 0; }
    最新回复(0)