【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>

筑起梦想的鸟巢,开始人生的长跑,领先每回的冲刺,

【LeetCode】Sort Colors 数组排序

相关文章:

你感兴趣的文章:

标签云: