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)
相关推荐
喂我花生(๑•̀ㅂ•́)و✧19 分钟前
JAVA中ArrayList的解析
java·开发语言·算法
摄殓永恒30 分钟前
【入门】斜角II
c++·算法·图论
David Bates2 小时前
代码随想录第41天:图论2(岛屿系列)
python·算法·图论
司小豆2 小时前
视觉-语言基础模型作为高效的机器人模仿学习范式
人工智能·算法·机器人
oioihoii3 小时前
C++23 新特性:为 std::pair 的转发构造函数添加默认实参
算法·c++23
智者知已应修善业3 小时前
【验证哥德巴赫猜想(奇数)】2021-11-19 15:54
c语言·c++·经验分享·笔记·算法
-qOVOp-4 小时前
zst-2001 历年真题 设计模式
java·算法·设计模式
evolution_language4 小时前
LintCode第68题-二叉树的前序遍历,第67题-二叉树的后序遍历
数据结构·算法·新手必刷编程50题
passionSnail5 小时前
《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-俄罗斯方块:用旋转矩阵打造经典
算法·matlab·矩阵·游戏程序·交互
yxc_inspire5 小时前
C++STL在算法竞赛中的应用详解
c++·算法·stl