回溯的思想,当遍历到响应的元素后,注意还有一步测回的操作。
class Solution:
def permute(self , num: List[int]) -> List[List[int]]:
# write code here
if not num:
return None
num.sort()
res = []
self.backtrack(num, res, 0)
return res
def backtrack(self, num, res, index):
if index == len(num) - 1:
res.append(num)
else:
for i in range(index, len(num)):
temp = num[i]
num[i] = num[index]
num[index] = temp
self.backtrack(num, res, index + 1)
temp = num[i]
num[i] = num[index]
num[index] = temp