力扣 中等 46.全排列

文章目录

题目介绍

题解

代码如下:

java 复制代码
class Solution {
    List<List<Integer>> res = new ArrayList<>();// 存放符合条件结果的集合
    List<Integer> path = new ArrayList<>();// 用来存放符合条件结果
    boolean[] used; // 标记数组,记录数字是否被使用过
    public List<List<Integer>> permute(int[] nums) {
        used = new boolean[nums.length];   
        dfs(nums);
        return res;
    }
    public void dfs(int[] nums) {
        if (path.size() == nums.length) {
            res.add(new ArrayList<>(path));
            return;
        }
        for (int i = 0; i < nums.length; i++) {
            if (used[i] == false) {
                path.add(nums[i]);
                used[i] = true;
                dfs(nums);
                // 回溯,撤销选择并从路径中移除当前数字      
                path.remove(path.size() - 1);
                used[i] = false;
            }
        }
    }
}
相关推荐
LAOLONG-C3 分钟前
从零到有的游戏开发(visual studio 2022 + easyx.h)
c语言·ide·算法·visual studio
创码小奇客10 分钟前
Spring Boot 中分布式事务的奇幻漂流
java·spring boot·trae
机器鱼12 分钟前
MATLAB基于统计特征与指数退化模型的风力发电机高速轴承剩余寿命预测
人工智能·算法·机器学习
我是大头鸟19 分钟前
ecplise 工具 没有Java EE Tools 选项
java·java-ee
IDRSolutions_CN44 分钟前
开发PDF时,如何比较 PDF 文件
java·经验分享·pdf·软件工程·团队开发
程序员JerrySUN1 小时前
驱动开发硬核特训 · Day 1
java·linux·运维·开发语言·c++·驱动开发
clock的时钟1 小时前
数据结构(一)KMP+滑动窗口+链表+栈+队列
数据结构·算法·链表
sugar__salt1 小时前
各种排序思路及实现
数据结构·算法·排序算法
郑州吴彦祖7721 小时前
UTF-8和GBK编码的区别和详细解释
java·utf-8
Vitalia1 小时前
⭐算法OJ⭐数据流的中位数【最小堆】Find Median from Data Stream
数据结构·c++·算法·最小堆