力扣 中等 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 分钟前
Linux 5 目录权限与粘滞位详解
linux·运维·服务器·数据结构·python·算法·tornado
酉鬼女又兒9 分钟前
SQL113+114 更新记录(一)(二)+更新数据知识总结
java·服务器·前端
yi.Ist13 分钟前
关于若干基础的几何问题
c++·学习·算法·计算几何
毅炼31 分钟前
Netty 常见问题总结
java·网络·数据结构·算法·哈希算法
Anastasiozzzz34 分钟前
leetcodehot100--最小栈 MinStack
java·javascript·算法
Sylvia-girl38 分钟前
线程的死锁【了解】
java·开发语言·jvm
历程里程碑43 分钟前
双指针2--盛水最多的容器
大数据·数据结构·算法·leetcode·elasticsearch·搜索引擎·散列表
Elias不吃糖44 分钟前
java开发的三层架构
java·开发语言·架构
pp起床1 小时前
【苍穹外卖】Day2.5 分类管理
java
hetao17338371 小时前
2026-01-22~23 hetao1733837 的刷题笔记
c++·笔记·算法