"""解题思路:1.荷兰分区问题,我们把数组分成四类:red, white, 未分类, blue。初始的时候都在未分类组里,只要白色指针小于蓝色指针,我们遍历数组2.当白色指针是是红色的时候nums[white]==0,我们交换红色指针,并且两个指针同时+13.当白色指针是白色的时候,位置在正确位置,指针+14.当白色指针是蓝色的其他情况,则交换蓝色指针,并且,蓝色指针-1“”“class Solution(object): def sortColors(self, nums): """ :type nums: List[int] :rtype: None Do not return anything, modify nums in-place instead. """ red = 0 white = 0 blue = len(nums) - 1 while white <= blue: if nums[white] == 0: nums[red], nums[white] = nums[white], nums[red] red += 1 white += 1 elif nums[white] == 1: white += 1 else: nums[blue], nums[white] = nums[white], nums[blue] blue -= 1
2.当白色指针是是红色的时候nums[white]==0,我们交换红色指针,并且两个指针同时+1
来源:https://www.cnblogs.com/boluo007/p/12375773.html