https://leetcode.cn/problems/sort-colors/submissions/
标签
需要注意的点
- 两种指针方式,一种是取0和1,另一种是取0,2
- nums[i] 需要进行交换
- 注释写一些test case
- 解法1,参考https://www.bilibili.com/video/BV1Jg411M7Lp?spm_id_from=333.337.search-card.all.click&vd_source=e8e1b6de93e68d8ce8ab44afe5802a40
class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""'''2,0,2,1,1,0,0,1,1,2,2,0'''p0,p2 = 0, len(nums)-1i = 0while i <= p2:if nums[i] == 0:self.swap(nums, i, p0)i+=1p0+=1elif nums[i] == 1:i+=1else:self.swap(nums,i, p2)p2 -=1def swap(self, nums, index1, index2):nums[index1],nums[index2] = nums[index2],nums[index1]
class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""'''1,0,1,2,00,0,0,1,2,0'''size = len(nums)p0, p1 = 0, 0for i in range(size):if nums[i] == 1:nums[i], nums[p1] = nums[p1], nums[i]p1 += 1if nums[i] == 0:nums[i], nums[p0] = nums[p0], nums[i]if p0 < p1:nums[i], nums[p1] = nums[p1], nums[i]p0 += 1p1 += 1
