回溯算法 全排列模板

简介: 回溯算法 全排列模板

1.输入一个不重复数组作为可选

2.输出全排列组合

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        # 回溯算法
        result = []
        track = [] # 可行路径
        def trackBack(nums_, track_):
            if len(track_) == len(nums_): # 满足终止条件
                result.append(track_[:])
                return
            for i in nums_: #所有可选项
                if i in track_: # 判断是否可选
                    continue
                track.append(i) # 选择
                trackBack(nums_, track_) # 递归
                track.pop() # 回溯
        trackBack(nums, track)
        return result
相关文章
|
1月前
|
算法
【算法】前缀和——二维前缀和模板题
【算法】前缀和——二维前缀和模板题
|
1月前
|
算法
【算法】递归、搜索与回溯——汉诺塔
【算法】递归、搜索与回溯——汉诺塔
|
1月前
|
算法
【算法】递归、搜索与回溯——简介
【算法】递归、搜索与回溯——简介
|
3月前
|
算法 Java 数据处理
Java算法模板 数据流快读
Java算法模板 数据流快读
23 2
|
3月前
|
机器学习/深度学习 人工智能 算法
回溯算法是怎样的
回溯算法,择优搜索:树的深搜+剪枝
|
3月前
|
机器学习/深度学习 存储 算法
Python5种算法回溯+剪枝、字典序、递归交换、计数回溯、迭代法 实现全排列ll【力扣题47】
Python5种算法回溯+剪枝、字典序、递归交换、计数回溯、迭代法 实现全排列ll【力扣题47】
|
3月前
|
算法 数据挖掘 开发者
LeetCode题目55:跳跃游戏【python5种算法贪心/回溯/动态规划/优化贪心/索引哈希映射 详解】
LeetCode题目55:跳跃游戏【python5种算法贪心/回溯/动态规划/优化贪心/索引哈希映射 详解】
|
2月前
|
设计模式 JavaScript 算法
vue2 原理【详解】MVVM、响应式、模板编译、虚拟节点 vDom、diff 算法
vue2 原理【详解】MVVM、响应式、模板编译、虚拟节点 vDom、diff 算法
60 0
|
3月前
|
算法 前端开发 安全
C++算法模板
C++算法模板
23 0
|
3月前
|
算法
【经典LeetCode算法题目专栏分类】【第11期】递归问题:字母大小写全排列、括号生成
【经典LeetCode算法题目专栏分类】【第11期】递归问题:字母大小写全排列、括号生成