题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
提交链接:点击
思路:用空间换时间的做法。首先遍历整个数组,将奇数放入t1中,将偶数放入t2中,最后遍历数组,用t1,t2分别赋值即可!
代码:
class Solution { public: void reOrderArray(vector<int> &array) { vector<int> t1,t2; //t1存奇数,t2存偶数 int i,j; for(i=0;i<array.size();i++){ if(array[i]%2!=0){ t1.push_back(array[i]); }else{ t2.push_back(array[i]); } } for(i=0;i<t1.size();i++){ array[i]=t1[i]; } for(j=0;j<t2.size()&&i<array.size();j++,i++){ array[i]=t2[j]; } } };