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)
相关推荐
鑫鑫向栄1 小时前
[蓝桥杯]模型染色
数据结构·c++·算法·职场和发展·蓝桥杯
1白天的黑夜12 小时前
栈-20.有效的括号-力扣(LeetCode)
c++·算法·leetcode
小白程序员丶钟同学2 小时前
L1-019 谁先倒 (15 分)
数据结构·算法
<但凡.3 小时前
题海拾贝:P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法
bubiyoushang8883 小时前
matlab实现高斯烟羽模型算法
开发语言·算法·matlab
2301_766536053 小时前
刷leetcode hot100--矩阵6/1
算法·leetcode·矩阵
阳洞洞4 小时前
leetcode 455. Assign Cookies和2410. Maximum Matching of Players With Trainers
leetcode·贪心
前端拿破轮4 小时前
【代码随想录刷题总结】leetcode27-移除元素
算法·leetcode
王哥儿聊AI5 小时前
MaskSearch:提升智能体搜索能力的新框架
大数据·人工智能·算法·语言模型·自然语言处理