本文主要是介绍Leetcode 46.全排列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
注意的点:
1、回溯本质就是搜索树的树枝,维护三个核心变量:path(需要恢复现场),visited(需要恢复现场),以及res
解法:回溯算法
class Solution:def permute(self, nums: List[int]) -> List[List[int]]:# 回溯path = []res = []def dfs(candidate):nonlocal res, pathif not candidate:res.append(path[:])returnfor i in range(len(candidate)):path.append(candidate[i])dfs(candidate[:i] + candidate[i+1:])path.pop()dfs(nums)return res
这篇关于Leetcode 46.全排列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!