题目:
吐槽:就是一个变相的荷兰国旗问题,也是三路快排的partition的过程。
代码:
public void sortColors(int[] nums) {
//很明显的荷兰国旗问题,三路快排的一个步骤
int l = -1;
int r = nums.length;
int i = 0;
int pre;
while(i<r){
//1.等于0的放左面
if(nums[i]==0){
pre = nums[i];
nums[i] =nums[++l];
nums[l]= pre;
i++;
}else if(nums[i]==1){
//2.等于1的放中间
i++;
}else{
//3.等于2的放右面
pre = nums[--r];
nums[r]=nums[i];
nums[i] = pre;
}
}
}