030_颜色分类
知识点:双指针
LeetCode第七十五题:https://leetcode-cn.com/problems/sort-colors
评论区有说直接借用库函数排序,姑且不说判题系统允不允许直接用sort,就算用了时间复杂度至少也是O(nlogn)吧,看看下面的双指针,是O(n)哦。
语言:GoLang
// 双指针:左右分别指向
func sortColors(nums []int) {
left, right := 0, len(nums) - 1
for i := 0; i <= right; {
if nums[i] == 0 {
nums[left], nums[i] = nums[i], nums[left]
left++
i++
} else if nums[i] == 2 {
nums[right], nums[i] = nums[i], nums[right]
right--
} else {
i++
}
}
}

浙公网安备 33010602011771号