Java for LintCode 颜色分类

给定一个包含红,白,蓝且长度为n的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。

我们可以使用整数0,1和2分别代表红,白,蓝。

解题思路:

Java for LeetCode 075 Sort Colors

public void sortColors(int[] nums) {
    int left = 0, right = nums.length - 1;
    for (int i = 0; i <= right;) {
        if (nums[i] == 0 && i > left) {
            int temp = nums[i];
            nums[i] = nums[left];
            nums[left] = temp;
            left++;
        } else if (nums[i] == 2 && i < right) {
            int temp = nums[i];
            nums[i] = nums[right];
            nums[right] = temp;
            right--;
        } else
            i++;
    }
}

 

posted @ 2015-06-15 21:42  TonyLuis  阅读(263)  评论(0编辑  收藏  举报