思路
先排最小的数,将最小的数都放至列表前面 则0~r-1都是最小值
从r到len(nums)-1继续进行排序,从尾部开始,将最大值放置尾部
class Solution(object):
def sortColors(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
if nums.count(nums[0])==len(nums):
return nums
mins= min(nums)
mas=max(nums)
l = 0
r=0
while r<len(nums):
if nums[r]==mins:
nums[l],nums[r]=nums[r],nums[l]
r+=1
l+=1
else:
r+=1
t = l
l, r=len(nums)-1,len(nums)-1
while l>=t:
if nums[l]==mas:
nums[l],nums[r]=nums[r],nums[l]
r-=1
l-=1
else:
l-=1
return nums