R5-回溯篇
思路也是如下:
层层固定
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
#x代表当前固定/选择的数的下标
def dfs(x):
if x==len(nums)-1:
ret.append(list(nums))
return
for i in range(x,len(nums)):
#交换,将nums[i]固定在第x位
nums[i],nums[x]=nums[x],nums[i]
#固定第x+1位元素
dfs(x+1)
#恢复交换
nums[i],nums[x]=nums[x],nums[i]
ret=[]
dfs(0)
return ret