leetcode Sort Colors

来源:互联网 发布:骑行服设计软件 编辑:程序博客网 时间:2024/06/02 07:01

题目链接

思路:
用两个指针,一个标记0的结尾,一个标记2的开头。。用一个指针扫描数组。如果是0,放到0的集合中,如果是2放到2的集合中。如果是1则不处理。。

public class Solution {    public void sortColors(int[] nums) {       int zeroIndex=-1;        int twoIndex=nums.length;        for(int i=0;i<twoIndex;)        {            if(nums[i]==0)            {                if(++zeroIndex<twoIndex)                {                    nums[i]=nums[zeroIndex];                    nums[zeroIndex]=0;                }                i++;            }            else if(nums[i]==2)            {                if(--twoIndex>zeroIndex)                {                    nums[i]=nums[twoIndex];                    nums[twoIndex]=2;                }            }            else            {                i++;            }        }    }}
0 0