面试题14 调整数组顺序使奇数位于偶数前面
Posted 早杰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题14 调整数组顺序使奇数位于偶数前面相关的知识,希望对你有一定的参考价值。
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
1 class Solution { 2 public: 3 void reOrderArray(vector<int> &array) { 4 if (array.size() == 0) 5 return; 6 int i = 0, j = array.size() - 1; 7 vector<int> 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 else 13 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<int> &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 };
以上是关于面试题14 调整数组顺序使奇数位于偶数前面的主要内容,如果未能解决你的问题,请参考以下文章
剑指offer面试题14(Java版):调整数组顺序使奇数位于偶数的前面
剑指Offer-代码的完整性面试题21:调整数组顺序使奇数位于偶数前面
剑指Offer面试题 九度OJ1516:调整数组顺序使奇数位于偶数前面