I was looking at someone's solution to backtracking using the heap's algorithm using Python3 today. The solution is below:
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
Now I am looking at the line ans.append(nums[:])
, What's the point of writing nums[:]
? Won't writing nums
function correctly?