[LeetCode]--75. Sort Colors

简介: Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, we will use the

Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.

Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.

Note:
You are not suppose to use the library’s sort function for this problem.

click to show follow up.

Follow up:
A rather straight forward solution is a two-pass algorithm using counting sort.
First, iterate the array counting number of 0’s, 1’s, and 2’s, then overwrite array with total number of 0’s, then 1’s and followed by 2’s.

Could you come up with an one-pass algorithm using only constant space?

我第一反应是收集起来,因为只有三个数吗,这样效率就应该蛮高。

public void sortColors(int[] nums) {
        int num0 = 0, num1 = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == 0) {
                num0++;
                continue;
            }
            if (nums[i] == 1) {
                num1++;
                continue;
            }
        }

        for (int i = 0; i < nums.length; i++) {
            if (i < num0) {
                nums[i] = 0;
                continue;
            }
            if (i < num0 + num1) {
                nums[i] = 1;
                continue;
            }
            nums[i] = 2;
        }

    }
目录
相关文章
LeetCode 148. Sort List
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。
72 0
LeetCode 148. Sort List
|
索引
LeetCode 75. Sort Colors
给定一个具有红色,白色或蓝色的n个对象的数组,对它们进行就地排序,使相同颜色的对象相邻,颜色顺序为红色,白色和蓝色。 这里,我们将使用整数0,1和2分别表示红色,白色和蓝色。 注意:您不应该使用库的排序功能来解决此问题。
46 0
LeetCode 75. Sort Colors
LeetCode 75 Sort Colors 颜色分类(荷兰国旗)
Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.
90 0
|
人工智能 C++ Python
LeetCode 905. Sort Array By Parity
LeetCode 905. Sort Array By Parity
93 0
|
vr&ar
【LeetCode1122】数组的相对排序(哈希or自定义sort)
没错,,简单题,就是说将arr1中有arr2的元素,则按照arr2的元素先排列(特别注意:这里的arr2的元素都是不同的,但是arr1中是可以元素重复的)
179 0
【LeetCode1122】数组的相对排序(哈希or自定义sort)