题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
1 class Solution { 2 public: 3 void reOrderArray(vector &array) { 4 if (array.size() == 0) 5 return; 6 int i = 0, j = array.size() - 1; 7 vector v1, v2; 8 9 for (int i = 0; i < array.size(); i++){10 if (array[i] % 2 != 0)11 v1.push_back(array[i]);12 else13 v2.push_back(array[i]);14 }15 int k = 0;16 for (int j = 0; j < v1.size(); j++){17 array[k] = v1[j];18 k++;19 }20 for (int j = 0; j < v2.size(); j++){21 array[k] = v2[j];22 k++;23 }24 }25 };
1 class Solution { 2 public: 3 void reOrderArray(vector &array) { 4 if (array.size() == 0) 5 return; 6 int i = 0, j = array.size() - 1; 7 while (j > i){ 8 if (array[i] % 2 != 0) 9 i++;10 if (array[j] % 2 == 0)11 j--;12 if (array[i] % 2 == 0 && array[j] % 2 != 0){13 int temp = array[i];14 array[i] = array[j];15 array[j] = temp;16 }17 }18 }19 };