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?