75. 颜色分类
力扣传送门
辣鸡动画题解
class Solution {
public void sortColors(int[] nums) {
int l = 0, r = nums.length - 1;
for(int i =0 ; i <= r; i++) {
if(nums[i] == 0) {
if(i > l){ //i==l就没必要交换了
swap(nums,i,l);
l++;
i--; //交换后的节点也需要判断,而不是跳到下一个元素
}
}
if(nums[i] == 2) {
if(i < r) {
swap(nums,i,r);
r--;
i--;
}
}
}
}
//两数交换
public void swap(int[] nums,int i, int j) {
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
}