【发布时间】:2019-07-15 00:45:52
【问题描述】:
我今天正在寻找某人使用 Python3 使用堆算法进行回溯的解决方案。解决方法如下:
def permute(self, nums):
def backtrack(start, end):
if start == end:
ans.append(nums[:])
for i in range(start, end):
nums[start], nums[i] = nums[i], nums[start]
backtrack(start+1, end)
nums[start], nums[i] = nums[i], nums[start]
ans = []
backtrack(0, len(nums))
return ans
现在我在看ans.append(nums[:])这一行,写nums[:]有什么意义?写nums 不能正常工作吗?
【问题讨论】:
-
一个常见的原因是制作一个列表的副本,而不是仅仅获得对它的引用。
标签: python python-3.x list append