您的位置:首页 > 编程语言 > Python开发

leetcode之Sort Colors

2016-01-09 12:14 776 查看
大体思路是先加一个2去末尾,然后0, 1的插入位置就会靠前。每次从头取一个数插到末尾,然后删掉开头。代码如下:
class Solution(object):
def sortColors(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
if len(nums) == 1:
return
if len(nums) == 2:
if nums[0] == 0:
return
elif nums[-1] == 2:
return
else:
a = nums.pop()
nums.insert(0, a)
LocationOfRed = -1
LocationOfWhite = -1
#此处多加了一个blue
nums.append(2)
for i in range(len(nums) - 1):
if nums[0] == 0:
nums.insert(LocationOfRed, 0)
del nums[0]
elif nums[0] == 1:
nums.insert(LocationOfWhite, 1)
del nums[0]
LocationOfRed = LocationOfRed - 1
else:
nums.append(2)
del nums[0]
LocationOfRed = LocationOfRed - 1
LocationOfWhite = LocationOfWhite - 1
nums.pop()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息