题一
【 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变 】
方法一:借助额外的空间
class Solution {
public:
void reOrderArray(vector<int> &array) {
if(array.size()<=0)
return;
//临时用来存放偶数的数组
vector<int> temp;
//遍历容器将偶数保存到新的容器,并将原容器中的偶数删除
for(vector<int>::iterator it=array.begin();it!=array.end();)
{
if((*it)%2==0)
{
temp.push_back(*it);
it=array.erase(it);
}else{
it++;
}
}
//然后将偶数再添加到原容器的后面
for(vector<int>::iterator v1=temp.begin();v1!=temp.end();v1++)
{
array.push_back(*v1);
}
}
};