就是多个小于区域,大于区域呗,如果四色问题,可以把两个颜色当一个做
class Solution {
public void sortColors(int[] nums) {
int low=-1;
int high=nums.length;
int cur=0;
while(cur<high){
//如果小于当前数,就将这个数和low区域的下一个数交换
if(nums[cur]<1){
int temp=nums[cur];
nums[cur++]=nums[++low];
nums[low]=temp;
}
//如果大于当前数,就和high的前一个数交换
else if(nums[cur]>1){
int temp=nums[cur];
nums[cur]=nums[--high];//这个cur不要动。。
nums[high]=temp;
}else{
cur++;
}
}
}
}