输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
代码比较简单,就不做说明了:
#include<iostream>
using namespace std;
#include<vector>
class Solution {
public:
void reOrderArray(vector<int>& array) {
int size = (int)array.size();
vector<int> v(size);
int j = 0;
for(int i = 0; i < size; ++i)
{
if(array[i] % 2 == 1)
v[j++] = array[i];
}
j = size -1;
for(int i = j;i >= 0; --i)
{
if(array[i] % 2 == 0)
v[j--] = array[i];
}
array = v;
}
};
int main()
{
vector<int> v{2,1,4,5,9};
Solution s;
s.reOrderArray(v);
for(auto e : v)
cout << e << " ";
cout << endl;
return 0;
}