奇偶分割数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇偶分割数组相关的知识,希望对你有一定的参考价值。

奇偶分割数组 

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

样例

给定 [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 };

 

以上是关于奇偶分割数组的主要内容,如果未能解决你的问题,请参考以下文章