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
}
}
}