题解 | #调整数组顺序使奇数位于偶数前面(一)#
调整数组顺序使奇数位于偶数前面(一)
https://www.nowcoder.com/practice/ef1f53ef31ca408cada5093c8780f44b
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型vector * @return int整型vector */ //插入排序的变体;注意不能用交换着排序(冒泡变体),会改变相对顺序 //方法:找到第一个偶数,然后从该偶数开始向后遍历,遇到的奇数全部转移到这个偶数之前 vector<int> reOrderArray(vector<int>& array) { //找到第一个偶数 int evenHead = array.size(); for(int i=0;i<array.size();i++){ if(array[i]%2==0){ evenHead = i; break; } } //若没有偶数,则直接返回 //偶数后面的所有奇数依次插入到该偶数前面,同时每次删除一个奇数 //iterator insert(pos,elem) 在迭代器 pos 指定的位置之前插入一个新元素elem,并返回表示新插入元素位置的迭代器。 for(int i=evenHead;i<array.size();i++){ if(array[i]%2==1){ int temp = array[i]; array.erase(array.begin()+i); array.insert(array.begin()+evenHead,temp); evenHead++; } } return array; } };