力扣 中等 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;
            }
        }
    }
}
相关推荐
Propeller4 分钟前
【Android】模板化解决复杂场景的滑动冲突问题
android·java
渡我白衣7 分钟前
深入 Linux 内核启动:从按下电源到用户登录的全景解剖
java·linux·运维·服务器·开发语言·c++·人工智能
七夜zippoe8 分钟前
Java 9+模块化系统(JPMS)详解:设计与迁移实践
java·开发语言·maven·模块化·jmm
techzhi18 分钟前
Intellij idea 注释模版
java·python·intellij-idea
bagadesu19 分钟前
MySQL----case的用法
java·后端
甄心爱学习20 分钟前
数据挖掘11-分类的高级方法
人工智能·算法·分类·数据挖掘
what_201823 分钟前
idea启动项目配置环境变量(nacos 命名空间)
java·开发语言
Slow菜鸟25 分钟前
Java 开发环境安装指南(三) | Maven 安装
java
Fantasydg29 分钟前
JSP学习
java·开发语言·学习
太空程序猿1 小时前
数据类型与变量
java·开发语言