LintCode-373.奇偶分割数组

题目

描述

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

样例

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

解答

思路

从前往后找到的偶数,与从后往前找到的奇数换位子,两个游标相遇表示替换完毕。

代码

public class Solution {
    /**
     * @param nums: an array of integers
     * @return: nothing
     */
    public void partitionArray(int[] nums) {
        // write your code here;
        for(int i = 0, j = nums.length - 1; i < j; i++){
            if(nums[i] % 2 == 0){
                while(nums[j]%2 == 0){
                    if((--j)< i) return;   
                }
                int temp = nums[i];nums[i] = nums[j]; nums[j] = temp;
            } 
        }
    }
}

你可能感兴趣的:(LintCode-373.奇偶分割数组)