力扣 中等 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;
            }
        }
    }
}
相关推荐
郝学胜-神的一滴5 分钟前
Python中的“==“与“is“:深入解析与Vibe Coding时代的优化实践
开发语言·数据结构·c++·python·算法
流云鹤16 分钟前
动态规划01
算法·动态规划
abyyyyy12321 分钟前
oj题目练习
java·前端·数据库
有一个好名字23 分钟前
JAVA虚拟机-JVM
java·开发语言·jvm
SmartBrain26 分钟前
技术总结:VLLM部署Qwen3模型的详解
开发语言·人工智能·算法·vllm
weixin_4772716929 分钟前
第四正:关键(马王堆帛书《老子》20)
人工智能·算法·图搜索算法
玄〤30 分钟前
枚举问题的两大利器:深度优先搜索(DFS)与下一个排列(Next Permutation)算法详解(Java版本)(漫画解析)
java·算法·深度优先·dfs
weixin_4772716932 分钟前
第三正:结构(马王堆帛书《老子》2)
算法·图搜索算法
uesowys33 分钟前
算法开发指导-数据结构-Tree
数据结构·算法·
小冻梨66634 分钟前
ABC445 C - Sugoroku Destination题解
c++·算法·深度优先·图论·