美文网首页
Sort Colors

Sort Colors

作者: 瞬铭 | 来源:发表于2019-09-25 14:54 被阅读0次

https://leetcode.com/problems/sort-colors/
简化题意就是,有一个arr,里面只有0,1,2三个数字,将这个arr排序

-方法1: 遍历两次数组,第一遍求出0个个数,1的个数和2的个数,然后第二遍把这些数字都填进数组

如果题目要求只能遍历一次数组呢?

  • 方法二,只遍历一次数组
    三个标志位,left表明所有为1的最左边的下表。right表明2的最左边的下标-1
    curr表示当前遍历到的位置
  public void sortColors(int[] nums) {
        int left = 0;
        int right = nums.length - 1;
        int curr = 0;
        while (curr <= right) {
            if (nums[curr] == 0) {
                swap(nums, curr, left); 
                //left为1的最左边,所以在1的右边发现0,则交换,并且把left和curr都加1
                //特殊情况left没找到1的时候,left和curr一定都是0,因为当curr为1时,curr++了,而left没有加
                left++;
                curr++;
                continue;
            }

            if (nums[curr] == 1) {
                curr++;
                continue;
            }

            if (nums[curr] == 2) {
                //right为2的最左边,所以在2的左边发现2,交换
                //此时不知道交换过去的原nums[right]是多少,所以curr不变,继续下一个循环,而只把right--
                swap(nums, curr, right);
                right--;
            }
        }
    }

    public void swap(int[] arr, int i, int j) {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }

相关文章

  • 数组follow-up

    1.Sort Colors[Sort Colors]https://leetcode.com/problems/s...

  • Sort

    Sort Colors improve: Wiggle Sort Merge Intervals

  • Sort Colors

    Given an array with n objects colored red, white or blue,...

  • Sort Colors

    Given an array with n objects colored red, white or blue,...

  • Sort Colors

    计数排序解法 ​ ​ 三路快排解法 ​ 画图/变量定义 , 区间定义/伪代码 使用keynote画效果还不错​正确...

  • Sort Colors

    https://leetcode.com/problems/sort-colors/简化题意就是,有一个arr,里...

  • 75. Sort Colors | 88. Merge Sort

    75. Sort Colors 题目要求见:https://leetcode.com/problems/sort-...

  • 75 sort colors

    Given an array with n objects colored red, white or blue,...

  • sort-colors

    荷兰国旗问题

  • LeetCode 75 Sort Colors

    LeetCode 75 Sort Colors Given an array with n objects col...

网友评论

      本文标题:Sort Colors

      本文链接:https://www.haomeiwen.com/subject/kyjdyctx.html