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)
相关推荐
mit6.82415 分钟前
[Backlog] 核心协调器 | 终端用户界面(TUI)实现 | 多分支任务冲突解决 | 测试验证体系
人工智能·算法
SKYDROID云卓小助手33 分钟前
无人设备遥控器之无线电频率篇
服务器·网络·单片机·嵌入式硬件·算法
十八岁讨厌编程38 分钟前
【算法训练营Day11】二叉树part1
算法
緈福的街口1 小时前
【leetcode】2236. 判断根节点是否等于子节点之和
算法·leetcode·职场和发展
祁思妙想2 小时前
【LeetCode100】--- 1.两数之和【复习回滚】
数据结构·算法·leetcode
薰衣草23332 小时前
一天两道力扣(2)
算法·leetcode
小鲈鱼-2 小时前
【LeetCode4.寻找两个正序数组的中位数】二分O(log(m+n))
c++·算法
橘颂TA2 小时前
【C++】红黑树的底层思想 and 大厂面试常问
数据结构·c++·算法·红黑树
chao_7892 小时前
二分查找篇——寻找旋转排序数组中的最小值【LeetCode】
python·线性代数·算法·leetcode·矩阵
傻欣2 小时前
动态规划疑惑总结
算法·动态规划