力扣 中等 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;
            }
        }
    }
}
相关推荐
indexsunny7 分钟前
互联网大厂Java求职面试实战:核心技术与业务场景解析
java·spring boot·redis·微服务·kafka·互联网大厂·面试技巧
小涛不学习10 分钟前
Java 后端核心框架面试题(Spring / SpringMVC / MyBatis / MyBatis-Plus)
java·spring·mybatis
im_AMBER11 分钟前
Leetcode 141 最长公共前缀 | 罗马数字转整数
算法·leetcode
程序猿大波11 分钟前
基于java,SpringBoot和Vue餐饮公司食堂管理系统设计
java·vue.js·spring boot
似水明俊德14 分钟前
01-C#.Net-泛型-学习笔记
java·笔记·学习·c#·.net
百锦再14 分钟前
飞算 JavaAI:我的编程强力助推引擎
java·spring·ai·编程·idea·code·飞算
InfiniSynapse21 分钟前
连上Snowflake就能取数:InfiniSynapse + Spider2-Snow实战企业数据分析
数据结构·图像处理·人工智能·算法·语言模型·数据挖掘·数据分析
wuyaolong0071 小时前
Spring Boot 3.4 正式发布,结构化日志!
java·spring boot·后端
少许极端1 小时前
算法奇妙屋(三十三)-DFS的记忆化搜索
算法·深度优先·记忆化搜索
hua872221 小时前
Golang 构建学习
java·开发语言·学习