首页 > 代码库 > 奇偶分割数组

奇偶分割数组

奇偶分割数组 

分割一个整数数组,使得奇数在前偶数在后。

样例

给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]

挑战 

在原数组中完成,不使用额外空间。

标签 
数组 两根指针
 
 1 class Solution {
 2 public:
 3     /**
 4      * @param nums: a vector of integers
 5      * @return: nothing
 6      */
 7     void partitionArray(vector<int> &nums) {
 8         // write your code here
 9         int size = nums.size();
10         int begin=0, end=size-1;
11 
12         while(begin < end)  {
13             //  指向奇数
14             while((nums[begin] & 1)==1)  {
15                 begin++;
16             }
17             //  指向偶数
18             while((nums[end] & 1)==0) {
19                 end--;
20             }
21 
22             if(begin < end)  {
23                 int temp = nums[begin];
24                 nums[begin] = nums[end];
25                 nums[end] = temp;
26             }
27         }
28     }
29 };

 

奇偶分割数组