0075.颜色分类

方法一:双指针

时间复杂度 $O(n)$,空间复杂度 $O(1)$。

func sortColors(nums []int) {
	n, p0, p2 := len(nums), -1, len(nums)
	for i := 0; i < n && i < p2; i++ {
		if nums[i] == 0 {
			p0 += 1
			nums[p0], nums[i] = 0, nums[p0]
		} else if nums[i] == 2 {
			p2 -= 1
			nums[p2], nums[i] = 2, nums[p2]
			i -= 1
		}
	}
}