调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面
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前移一位则可解决问题