【python/leetcode/75】Sort Colors

题目

这里写图片描述

基本思路

这个题我居然没写出来,自己检讨一分钟。。。。
快排记得吧,不记得复习两分钟,然后看下代码就OK了。。。

实现代码

class Solution:
    def sortColors(self, nums):
        """
        :type nums: List[int]
        :rtype: void Do not return anything, modify nums in-place instead.
        """
        # 类似于快排的partition一步
        if nums == []:
            return []

        left,right = 0,len(nums)-1
        i = 0

        while i <= right:
            if nums[i] == 0:
                nums[i],nums[left] = nums[left],nums[i]
                left += 1
                i += 1
            # 注意我们的整体思路是从左往右,然后从后面交换到前面的元素也需要重新接受检验
            elif nums[i] == 2:
                nums[i],nums[right] = nums[right],nums[i]
                right -= 1
            else:
                i += 1

猜你喜欢

转载自blog.csdn.net/alicelmx/article/details/81285641