题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
解题思路:要求是调整原数组中,奇数位于偶数前面,利用一个额外数组将偶数取出,然后依次加入到原来数组中即可。
代码如下:
class Solution {
public:
void reOrderArray(vector<int> &array) {
vector<int>::iterator it=array.begin();
vector<int>Q;
for(it=array.begin();it!=array.end();)
{
if(*it%2==0)
{
Q.push_back(*it);
array.erase(it);
}
else
{
it++;
}
}
for(int i=0;i<Q.size();i++)
array.push_back(Q[i]);
}
};