75. Sort Colors

"""解题思路:
1.荷兰分区问题,我们把数组分成四类:red, white, 未分类, blue。初始的时候都在未分类组里,只要白色指针小于蓝色指针,我们遍历数组
2.当白色指针是是红色的时候nums[white]==0,我们交换红色指针,并且两个指针同时+1
3.当白色指针是白色的时候,位置在正确位置,指针+1
4.当白色指针是蓝色的其他情况,则交换蓝色指针,并且,蓝色指针-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
posted @ 2020-02-28 09:30  米开朗菠萝  阅读(139)  评论(0编辑  收藏  举报