调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面
https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
class Solution {
public:
void reOrderArray(vector<int> &array) {
vector<int> vec;
vector<int>::iterator it;
for( it=array.begin();it!=array.end();it++)
{
if((*it)%2==0)
{
vec.push_back(*it);
array.erase(it);
it--;
}
}
for(it=vec.begin();it!=vec.end();it++)
array.push_back(*it);
}
};vector的删除erase函数是通过传入迭代器删除的,需要注意的一点是vector删除了某个元素,则下一个元素的位置会移动到当前it指向的位置,而for循环会中也会将it往后移动,无形之中就跳过了了删除元素后面的元素的遍历,所以可以在删除后将it前移一位则可解决问题

