75.颜色分类
顏色分類
給定一個包含紅色、白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,并按照紅色、白色、藍色順序排列。
此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。
- 示例 1:
輸入:nums = [2,0,2,1,1,0]
輸出:[0,0,1,1,2,2]
- 示例 2:
輸入:nums = [2,0,1]
輸出:[0,1,2]
- 示例 3:
輸入:nums = [0]
輸出:[0]
- 示例 4:
輸入:nums = [1]
輸出:[1]
提示:
- n == nums.length
- 1 <= n <= 300
- nums[i] 為 0、1 或 2
解題思路
p0,p1,分別是指向0數列和1數列的末尾
代碼
func sortColors(nums []int) {p0, p1 := 0, 0for i, num := range nums {if num == 1 {nums[i], nums[p1] = nums[p1], nums[i]p1++} else if num == 0 {nums[i], nums[p0] = nums[p0], nums[i]if p0 < p1 {nums[i], nums[p1] = nums[p1], nums[i]}p0++p1++}總結
- 上一篇: 梦到自己喜欢的人怎么办
- 下一篇: 孕妇梦到家里发水了是什么意思