面试题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面试题21. 调整数组顺序使奇数位于偶数前面

剑指Offer面试题 九度OJ1516:调整数组顺序使奇数位于偶数前面

剑指Offer面试题 九度OJ1516:调整数组顺序使奇数位于偶数前面

剑指offer编程题Java实现——面试题14调整数组顺序使奇数位于偶数之前