75. 颜色分类

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-colors
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {

    private void swap(int[] nums, int a, int b) {
        int tmp = nums[a];
        nums[a] = nums[b];
        nums[b] = tmp;
    }

    public void sortColors(int[] nums) {
        int less = -1, more = nums.length;
        int index = 0;
        while (index < more) {
            if (nums[index] == 0) {
                swap(nums, index++, ++less);
            } else if (nums[index] == 1) {
                index++;
            } else {
                swap(nums, index, --more);
            }
        }
    }
}
上一篇:各进制之间的关联 --计数制de基本要素:基数和位权 (2进制,10进制,8进制,16进制)


下一篇:Java学习笔记75——接口成员的特点