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
相关推荐
YL200404261 分钟前
044二叉搜索树中第K小的元素
数据结构·leetcode
图码2 分钟前
生命游戏的优雅解法:从O(mn)空间到O(1)空间的进阶之旅
数据结构·算法·游戏·矩阵·空间计算
凯瑟琳.奥古斯特10 分钟前
IP组播跨子网传输核心技术解析
java·开发语言·网络·网络协议·职场和发展
2301_8008951013 分钟前
蓝桥杯第十二届b组国赛真题--备战国赛版h
算法·蓝桥杯
手写码匠17 分钟前
手写 AI Prompt Injection 防护系统:从零实现 LLM 安全边界
人工智能·深度学习·算法·aigc
薇茗19 分钟前
【初阶数据结构】 升沉有序的平仄 排序
c语言·数据结构·算法·排序算法
代码柏拉图20 分钟前
AI时代如何提问面试者
人工智能·面试·职场和发展
_深海凉_28 分钟前
LeetCode热题100-对称二叉树
算法·leetcode·职场和发展
瑞华丽PLM32 分钟前
瑞华丽工业软件研发效能全景展示
人工智能·算法·cae·工业软件·国产软件·瑞华丽plm·瑞华丽
Kiyra33 分钟前
Interview Agent:从面试平台到 Agent 工程实战的进化之路
面试·职场和发展