奇偶分割数组

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 };

 

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

LintCode Python 简单级题目 373.奇偶分割数组

NC41 最长无重复子数组/NC133链表的奇偶重排/NC116把数字翻译成字符串/NC135 股票交易的最大收益/NC126换钱的最少货币数/NC45实现二叉树先序,中序和后序遍历(递归)(代码片段

JavaScript 片段

C++将整数数组分割成奇数和偶数两个数组的源码

java一段数字 分割的升序降序 奇偶数分开排序

922. 按奇偶排序数组 II『简单』