跳转至

LC75 - 颜色分类

SortColors.go
package Other

func sortColors(nums []int) {
    for redBound, blueBound, cur := 0, len(nums)-1, 0; cur <= blueBound; {
        if nums[cur] == 0 {
            nums[redBound], nums[cur] = nums[cur], nums[redBound]
            redBound++
            cur++
        } else if nums[cur] == 1 {
            cur++
        } else if nums[cur] == 2 {
            nums[cur], nums[blueBound] = nums[blueBound], nums[cur]
            blueBound--
        }
    }
}

本题核心过程与三路快排的Partition过程一致。