LeetCode 46. 全排列

LeetCode 46. 全排列

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

示例 1:

输入:nums = [1,2,3]

输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]

输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]

输出:[[1]]

提示:

1 <= nums.length <= 6

-10 <= nums[i] <= 10

nums 中的所有整数 互不相同

回溯

python 复制代码
class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        from queue import Queue
        q = deque(nums)
        res_list = []
        self.backtrack(q, res_list, [])
        return res_list

    def backtrack(self, q, res_list, res):
        if not q:
            res_list.append(res.copy())
        else:
            for _ in range(len(q)):
                num = q.popleft()
                res.append(num)
                self.backtrack(q, res_list, res)
                res.pop()
                q.append(num)
相关推荐
alphaTao1 小时前
LeetCode 每日一题 2024/10/28-2024/11/3
python·算法·leetcode
凡人的AI工具箱3 小时前
15分钟学 Go 第 37 天:综合复习与小项目
开发语言·后端·算法·golang
Trouvaille ~6 小时前
【C++篇】在秩序与混沌的交响乐中: STL之map容器的哲学探寻
开发语言·数据结构·c++·算法·迭代器模式·stl·map
m0_571957587 小时前
Java | Leetcode Java题解之第537题复数乘法
java·leetcode·题解
nuyoah♂7 小时前
DAY18|二叉树Part06|LeetCode: 530.二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236.二叉树的最近公共祖先
算法·leetcode
五条凪8 小时前
从零开始的LeetCode刷题日记:70. 爬楼梯
数据结构·算法·leetcode·职场和发展·1024程序员节
小丁爱养花9 小时前
算法专题:栈
数据结构·算法·leetcode
azhou的代码园9 小时前
基于SpringBoot+微信小程序+协同过滤算法+二维码订单位置跟踪的农产品销售平台-新
spring boot·算法·微信小程序
cuisidong19979 小时前
5G无线帧基本架构
网络·算法·5g
地平线开发者10 小时前
【征程 6 工具链性能分析与优化-1】编译器预估 perf 解读与性能分析
算法·自动驾驶