力扣 中等 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;
            }
        }
    }
}
相关推荐
jjjxxxhhh1234 分钟前
【加密】-AES与对称加密
java·服务器·网络
临水逸6 分钟前
飞牛fnos 2025 漏洞Java跨域URL浏览器
java·开发语言·安全·web安全
yaoxin5211238 分钟前
324. Java Stream API - 实现 Collector 接口:自定义你的流式收集器
java·windows·python
H Corey9 分钟前
数据结构与算法:高效编程的核心
java·开发语言·数据结构·算法
米羊12119 分钟前
Struts 2 漏洞(上)
java·后端·struts
SmartBrain32 分钟前
Python 特性(第一部分):知识点讲解(含示例)
开发语言·人工智能·python·算法
galaxyffang42 分钟前
Java堆内存诊断:从工具使用到实战分析
java·jvm
01二进制代码漫游日记1 小时前
自定义类型:联合和枚举(一)
c语言·开发语言·学习·算法
小学卷王1 小时前
复试day25
算法
样例过了就是过了1 小时前
LeetCode热题100 和为 K 的子数组
数据结构·算法·leetcode