调整数组顺序使奇数在前偶数在后
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
一.就是添加多一个数组即可
class Solution { public: void reOrderArray(vector<int> &array) { vector<int> arr1; vector<int> arr2; for(auto i:array){ if(i%2==0){ arr1.push_back(i); }else{ arr2.push_back(i); } } int cout=0; for(int i=0;i<arr2.size();i++){ array[i]=arr2[i]; cout++; } for(int j=0;j<arr1.size();j++){ array[cout]=arr1[j]; cout++; } } };
优化后:》。。。。意思一样,代码简单了。
class Solution { public: void reOrderArray(vector<int> &array) { vector<int> val; for(int i=0;i<array.size();i++){ if(array[i]%2==1) val.push_back(array[i]); } for(int i=0;i<array.size();i++){ if(array[i]%2==0) val.push_back(array[i]); } array=val; } };
tianjiale菜鸟名企梦