14 调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分

 

C++:

1 void reOrderArray(vector<int> &array) {
2     int k = 0 ;
3     for(int i = 0 ; i < array.size() ; i++){
4         if (array[i] % 2 == 1){
5             swap(array[k++] , array[i]) ;
6         }
7     }
8 }

 

 

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,

并保证奇数和奇数,偶数和偶数之间的相对位置不变。

 

 

C++:

 1 class Solution {
 2 public:
 3     void reOrderArray(vector<int> &array) {
 4         int oddNum = 0 ;
 5         for(int a : array){
 6             if (a % 2 == 1){
 7                 oddNum++ ;
 8             }
 9         }
10         int i = 0 ;
11         int j = oddNum ;
12         vector<int> copy = array ;
13         for(int num : copy){
14             if (num % 2 == 1){
15                 array[i++] = num ;
16             }else{
17                 array[j++] = num ;
18             }
19         }
20     }
21 };

 

posted @ 2018-04-24 15:30  __Meng  阅读(164)  评论(0编辑  收藏  举报