• 【LeetCode】Sort Colors 数组排序


    题目:Sort color


    <span style="font-size:18px;">/*LeetCode sort colors
    题目:输入一个数组。包括0,1,2分别代表红白蓝三种颜色,要求依照0,1,2的顺序,将同类颜色的连续排列
    思路:计数排序,是一个遍历两遍的方法:能够先统计每种的数量,之后直接将这一范围内的全部值都赋值为对应的数字就可以
    遍历一遍的话能够在遍历的同一时候分别与0和2比較,从头和尾一起交换。1的在中间不用做处理;
    *
    */
    package javaTrain;
    
    public class Train13 {
    	public void sortColors(int[] A) {
    		int n = A.length;
    		int red = 0,blue = n-1;
    		
    		for(int i=0;i < blue+1;){	//由于会从后向前推进所以以blue表示尾部,确保仅仅用遍历一遍
    			int temp = A[i];	
    			if(temp == 0){ 
    				A[i++] = A[red];	//由于red在前。所以交换时它指向的仅仅能是0或1。所以交换后的位置能够向前移
    				A[red++] = temp;
    			}
    			else if(temp == 2){ 
    				A[i] = A[blue];		//而blue在后。它指向的之前并没有被比較过有可能有0,1,2所以交换的点不能向前移
    				A[blue--] = temp;
    			} 
    		}
        }
    }
    </span>


  • 相关阅读:
    数据分析 ---上篇
    爬虫 ---模拟登录
    Spider -- 获取图片并处理中文乱码
    爬虫篇 ---增量式爬虫
    Django中间件深入理解
    认识casbin
    关于nginx开机自己启动配置
    更改redhat yum源
    sqlalchemy监听事件
    Linux命令 history
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7249821.html
Copyright © 2020-2023  润新知