力扣 中等 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;
            }
        }
    }
}
相关推荐
大模型码小白2 分钟前
告别造假数据,直接连数据库查真实时序数据喂给 TimechoAI 大模型
java·数据库·人工智能·microsoft·架构
企业数字化笔记4 分钟前
固定资产Excel批量导入怎么防重复?资产编码、重复检查和错误回执
java·后端·excel
golang学习记9 分钟前
IDEA 2026.3 EAP新特性:自动识别Spring Boot的新 profile 了
java·spring boot·intellij-idea
SamDeepThinking15 分钟前
Java 17内存屏障:为什么需要,怎么用
java·后端·面试
青山木19 分钟前
Hot 100 --- 最长递增子序列
java·数据结构·算法·leetcode·动态规划
小陈不好吃32 分钟前
深入理解 JVM 内存模型:从堆栈结构到 GC 日志分析实战
java·jvm·java-ee·jdk
爱吃苹果的日记本36 分钟前
JAVA十三(练习课)
java·学习
磐链科技36 分钟前
交易所开发全流程指南:从需求分析到上线运维的完整路线图
java
無限進步D39 分钟前
Java Web 前端 简介
java·开发语言·前端·css·html·css3·web
聪明蛋子哟40 分钟前
从LangChain到LangGraph:Python与Java双栈Agent开发实战对比
java·ai·langchain