力扣 中等 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;
            }
        }
    }
}
相关推荐
橙露4 分钟前
嵌入式实时操作系统 FreeRTOS:任务调度与信号量的核心应用
java·大数据·服务器
愚公移码4 分钟前
蓝凌EKP产品:关联机制浅析
java·服务器·前端
阿蒙Amon10 分钟前
C#每日面试题-is和as的区别
java·开发语言·c#
狐5710 分钟前
2026-01-21-牛客每日一题-静态区间和(前缀和)
笔记·算法
Tao____11 分钟前
适合中小企业的物联网平台
java·物联网·mqtt·低代码·开源
2401_8414956412 分钟前
【Python高级编程】单词统计与查找分析工具
数据结构·python·算法·gui·排序·单词统计·查找
迷路剑客19 分钟前
ES-7.10-高亮HighLight知识点总结
java·数据库·mybatis
阿蒙Amon24 分钟前
C#每日面试题-简述泛型约束
java·开发语言·c#
Bruce_kaizy25 分钟前
c++ dfs搜索算法——剪枝
c++·深度优先·剪枝
源代码•宸32 分钟前
Leetcode—3. 无重复字符的最长子串【中等】
经验分享·后端·算法·leetcode·面试·golang·string