zoukankan      html  css  js  c++  java
  • 75. Sort Colors

    一、题目

      1、审题

      

      2、分析

        荷兰国旗问题。用 0,1,2 代表颜色,将数组中的所有的 0 排在前面, 1 排在中间,2排在后面。

    二、解答

      1、思路:

        ①、选用三个指针。 left 与 current 指向下标为 0 的元素; right 指向数组末尾。

        ②、遍历数组,当 current <= right 时:

          当 current 指向元素为 0 时,交换 left、current 的值,同时 left++,current++;

          当 current 指向元素为 1 时,current++;

          当current 指向元素为 2 时,交换 current、right 值,同时 right--

    public void sortColors2(int[] nums) {
            
            int len = nums.length;
            if(len < 2)
                return;
            
            int left = 0;
            int right = len - 1;
            int current = 0;
            while(current <= right) {
                if(nums[current] == 0){
                    swap(nums, left, current);
                    left++;
                    current++;
                }
                else if(nums[current] == 1) {
                    current++;
                }
                else {
                    swap(nums, right, current);
                    right--;
                }
            }
        }
  • 相关阅读:
    Linux进阶之正则,shell三剑客(grep,awk,sed),cut,sort,uniq
    生成下拉列表
    获取服务器时间
    Web窗体(WebForm)
    Session
    Cookie
    Server属性
    Response缓冲区
    小案例
    Web窗体(WebForm)的删除和修改
  • 原文地址:https://www.cnblogs.com/skillking/p/9689501.html
Copyright © 2011-2022 走看看