力扣 中等 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;
            }
        }
    }
}
相关推荐
bksczm18 小时前
Linux之日志和线程池、内存池
java·开发语言
笨蛋不要掉眼泪18 小时前
Java虚拟机:对象复活、引用强度与Stop-The-World
java·开发语言·jvm
Warren2Lynch18 小时前
掌握 UML 构造型、标记定义与标记值:面向领域特定建模的 UML 扩展全面指南
大数据·算法·uml
凤山老林18 小时前
SpringBoot实战:构建优雅的全局异常处理机制
java·springboot·异常处理
1570925113419 小时前
【无标题】
开发语言·python·算法
小Ti客栈19 小时前
Spring Boot 整合 Swagger2 和 Knife4j实现接口文档与可视化调试
java·spring boot·后端
梅头脑19 小时前
ThreadLocalMap里几十万个死Entry——排查了半天OOM,根因就一行finally没写
java
稚南城才子,乌衣巷风流19 小时前
换根法(Rerooting)算法详解
算法
晓子文集19 小时前
Tushare接口文档:期货交易日历(fut_trade_cal)
大数据·算法
2601_9638701719 小时前
【计算机毕业设计】基于Spring Boot的社区老年大学课程报名与学习系统的设计与实现
java·spring boot·学习