LeetCode75 颜色分类
问题描述
2. 思路
双指针[0,left]为0,(left,right)为1,[right,len(nums)-1]为2
遍历nums数组
- 如果nums[i] == 0,swap(nums[i],nums[left]),left++,i++
- 如果nums[i] == 1,i++
- 如果nums[i] == 2,swap(nums[i],nums[right]),right++,i++
3. 代码
func sortColors(nums []int) {
left, right := 0, len(nums) - 1
i := 0
for i <= right {
if nums[i] == 0 {
nums[i], nums[left] = nums[left], nums[i]
left++
i++
} else if nums[i] == 1 {
i++
} else {
nums[i], nums[right] = nums[right], nums[i]
right--
}
}
}