题解 | #调整数组顺序使奇数位于偶数前面#
调整数组顺序使奇数位于偶数前面
http://www.nowcoder.com/practice/ef1f53ef31ca408cada5093c8780f44b
辅助数组+双指针,同时从两头开始遍历。左边遍历的指针来检测奇数,遇到奇数往结果数组的前面放;右边的指针用来检测偶数,遇到偶数往结果数组的尾部放。时间复杂度O(n),空间复杂度O(n),思路简单,代码简单。
vector<int> reOrderArray(vector<int>& array) { // write code here int i = 0; int j = array.size()-1; int indexi = i; int indexj = j; vector<int> res(array.size(),0); while(i<array.size() && j>= 0 && indexi <= indexj){ if(array[i] & 1) res[indexi++] = array[i]; if(!(array[j] & 1)) res[indexj--] = array[j]; i++; j--; } return res; }