排序颜色,似乎不明白出了什么问题


class Solution(object):
def sortColors(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
l = []
for i in range(3):
for j in range(len(nums)):
if nums[j] == i:
l.append(nums[j])
nums = l

leetcode问题链接

谁能解释一下为什么我的代码不工作。

您应该"就地修改">。然而,

nums = l

不会改变先前由nums引用的列表对象!它只是重新绑定了本地变量nums。简单的修复方法是切片赋值:

nums[:] = l

下面是使用冒泡排序算法的代码…

class Solution(object):
def sortColors(self, nums):
l = len(nums)
for i in range(l-1):
for j in range(i+1, l):
if nums[i] > nums[j]: nums[i], nums[j] = nums[j], nums[i]

相关内容

最新更新