就是荷兰国旗问题,小于1的放在数组左边,等于1的放中间,大于1的放数组右边
class Solution {
public void sortColors(int[] nums) {
if(nums==null) return ;
int i=0;
int leftIndex=-1,rightIndex=nums.length;
while(i<rightIndex){
if(nums[i]>1){//等于2
swap(nums,i,--rightIndex);
}else if(nums[i]<1){//等于0
leftIndex++;
if(i!=leftIndex){
swap(nums,i,leftIndex);
}else{
i++;
}
}else{//等于1
i++;
}
}
}
public void swap(int[] nums,int i,int j){
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}