LeetCode热题100-全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

标准回溯题,回溯的思想是一种试错 + 撤销的算法思想:

  1. 做出一个选择
  2. 递归走下去
  3. 发现走不通 / 走完了
  4. 撤销选择,回到上一步(这一步叫回溯)
python 复制代码
class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        res = []

        def backtrack(path, used):
            if len(path) == len(nums):
                res.append(path.copy())
                return
            
            for i in range(len(nums)):
                if not used[i]:
                    used[i] = True
                    path.append(nums[i])

                    backtrack(path, used)
                    path.pop()
                    used[i] = False
            
        backtrack([], [False] * len(nums))
        return res
相关推荐
明志数科1 分钟前
具身智能数据标准化:从碎片化接口到统一工作组的技术路径
人工智能·算法·机器学习
旖-旎11 分钟前
LeetCode 494:目标和(动态规划/01背包问题)—— 题解
c++·算法·leetcode·动态规划·01背包
spssau22 分钟前
一文学会结构方程模型:从模型搭建、路径图绘制到不达标调整,实操全流程
人工智能·python·算法
zzz_236835 分钟前
【Java实习面试算法冲刺】总复盘
java·算法·面试
DFT计算杂谈1 小时前
DeepSeek 集群服务器无root本地部署指南
数据库·人工智能·python·opencv·算法
qq_454245031 小时前
GraphFoundation — 通用图基础框架
算法·架构
不一样的故事1262 小时前
军工行业合规与基础认知
数据结构·经验分享·算法
圣保罗的大教堂7 小时前
leetcode 3867. 数对的最大公约数之和 中等
leetcode
To_OC9 小时前
LC 15 三数之和:双指针不难,难的是把去重做对
javascript·算法·leetcode
renhongxia112 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi