leetcode:Partition Array by odd and even

Posted 自朗活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode:Partition Array by odd and even相关的知识,希望对你有一定的参考价值。

1、

  Partition an integers array into odd number first and even number second.

     Given [1, 2, 3, 4], return [1, 3, 2, 4]

2、思路

  1、通过两次遍历,不合算。

  2、一次遍历,一个从头,一个从尾,如果碰到偶数,兑换位置,此方法为排序。

3、

  

  public void partitionArray(int[] nums) {
       int start = 0, end = nums.length - 1;
            while (start < end) {
          //奇数的位置
while (start < end && nums[start] % 2 == 1) { start++; }
         //偶数的位置
while (start < end && nums[end] % 2 == 0) { end--; }
        //如果碰到偶数,调换位置,
if (start < end) { int temp = nums[start]; nums[start] = nums[end]; nums[end] = temp; start++; end--; } } }

 

以上是关于leetcode:Partition Array by odd and even的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Partition Equal Subset Sum

[LeetCode] Partition Labels

LeetCode - Partition Labels

[leetcode] Partition Labels

LeetCode:Partition List

[LeetCode] Partition Labels 分割标签