剑指Offer——调整数组顺序使奇数位于偶数前面
题目描述:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
分析:
不解释,用空间换时间。
代码:
1 class Solution { 2 public: 3 void reOrderArray(vector<int> &array) { 4 int Len = array.size(); 5 vector<int> a; // 存奇数 6 vector<int> b; // 存偶数 7 int i, j; 8 for(i = 0; i < Len; i++) { 9 if(array[i] & 1) a.push_back(array[i]); 10 else b.push_back(array[i]); 11 } 12 int aLen = a.size(); 13 int bLen = b.size(); 14 for(i = 0; i < aLen; i++) { 15 array[i] = a[i]; 16 } 17 j = i; 18 for(i = 0; i < bLen; i++) { 19 array[j++] = b[i]; 20 } 21 } 22 };