https://leetcode-cn.com/problems/sort-colors/
思路:3指针
l,r,index
按照index遍历,遇到2和r交换,遇到0和l交换,遇到1index++
public void sortColors(int[] nums) {
int index = 0;
int l = 0;
int r = nums.length-1;
while(index<=r) {
int num = nums[index];
if(num==2) {
//遇到2和r交换
swap(nums,index,r--);
}else if(num==1) {
//遇到1index++
index++;
}else {
//遇到0和l交换
swap(nums,index++,l++);
}
}
}
public void swap(int[] nums,int i,int j) {
int tmp = nums[i];
nums[i]=nums[j];
nums[j]=tmp;
}
网友评论