LintCode-373.奇偶分割数组

奇偶分割数组

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

样例

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

挑战

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

标签

数组 两根指针

code

class Solution {
public:
    /**
     * @param nums: a vector of integers
     * @return: nothing
     */
    void partitionArray(vector<int> &nums) {
        // write your code here
        int size = nums.size();
        int begin=0, end=size-1;

        while(begin < end) {
            //  指向奇数
            while((nums[begin] & 1)==1) {
                begin++;
            }
            //  指向偶数
            while((nums[end] & 1)==0) {
                end--;
            }

            if(begin < end) {
                int temp = nums[begin];
                nums[begin] = nums[end];
                nums[end] = temp;
            }
        }
    }
};
posted @ 2017-05-04 14:19  LiBaoquan  阅读(182)  评论(0编辑  收藏  举报