力扣 中等 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;
            }
        }
    }
}
相关推荐
CodeAmaz6 分钟前
ConcurrentHashMap(JDK 7/8)详细介绍
java·hashmap·线程安全map
大猫和小黄8 分钟前
Tomcat vs Undertow 全面对比
java·tomcat
霁月中12 分钟前
[Codeforces Round 1065 (Div. 3)](A-D,F)
算法
世洋Blog15 分钟前
算法导论-分治法和合并(Merge)排序
算法
源代码•宸21 分钟前
Golang基础语法(go语言结构体、go语言数组与切片、go语言条件句、go语言循环)
开发语言·经验分享·后端·算法·golang·go
霍田煜熙25 分钟前
【无标题】
java
l1t27 分钟前
快速加载CSV文件到数据库的工具pg_csv_loader
数据库·算法
无忧智库28 分钟前
深度拆解:某大型医院“十五五”智慧医院建设方案,如何冲刺互联互通五级乙等?(附技术架构与实施路径)
java·数据库·架构
yugi98783834 分钟前
基于Matlab的晴空指数计算实现
开发语言·算法·matlab
守护砂之国泰裤辣38 分钟前
Windows+docker下简单kafka测试联调
java·运维·spring boot·docker·容器