力扣-75.颜色分类
题目链接
75.颜色分类
class Solution {public void sortColors(int[] nums) {int p0 = 0;int p2 = nums.length - 1;int p = 0;//注意循环结束的条件while (p <= p2) {if (nums[p] == 2) {swap(nums, p, p2);p2--;} else if (nums[p] == 1) {p++;} else {swap(nums, p, p0);p++;p0++;}}}public void swap(int[] nums, int a, int b) {int temp = nums[a];nums[a] = nums[b];nums[b] = temp;}
}
小结:注意遇到 0 和遇到 2 的时候只能有一个移动 p 指针,另一个不动,用于再次检查,防止错过,如[1,2,0]