力扣 中等 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;
            }
        }
    }
}
相关推荐
olderSix编程笔记13 分钟前
7.并发编程之并发安全问题
java·jvm·安全
Lbs_gemini060314 分钟前
JAVA就业笔记3——第一阶段(3)
java·开发语言·笔记·学习
非著名架构师1 小时前
基于 Java 的天气预报系统设计与实现
java·开发语言·状态模式·开源气象大模型·气象大模型·leaflet可视化·era5数据
IT学长编程2 小时前
计算机毕业设计 网上书店系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·网上书店系统
小冉在学习2 小时前
leetcode 刷题day37动态规划Part06背包问题( 322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包)
算法·leetcode·动态规划
我狠狠地刷刷刷刷刷3 小时前
最长子字符串的长度(一)
数据结构·算法
人才程序员3 小时前
CSP-J/S 复赛算法 并查集-Hash表
c语言·c++·算法·青少年编程·哈希算法·竞赛·csp
luthane3 小时前
python 实现DFS判断是否是二分图Bipartite算法
python·算法·深度优先
不修×蝙蝠3 小时前
八大排序--07归并排序
数据结构·算法·排序算法
学编程的小鬼3 小时前
排序--DS
java·算法·排序算法