力扣 中等 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;
            }
        }
    }
}
相关推荐
载数而行52013 小时前
复杂度问题
c语言·数据结构·c++·算法·排序算法
WZ1881046386913 小时前
LeetCode第20题
算法·leetcode
像素猎人13 小时前
字符串/字符与整型数据的相互转换stoi/stol()和to_string()
c++·算法
蜜獾云13 小时前
JAVA面试题速记-redis知识点
java·开发语言·redis
吕司13 小时前
LeetCode Hot Code——三数之和
数据结构·算法·leetcode
-海绵东东-13 小时前
图论——代码篇
算法·深度优先·图论
Drifter_yh13 小时前
「JVM」 深入理解 StringTable:从底层编译优化到 intern 核心解密
java·jvm
金枪不摆鳍13 小时前
hot100二分查找专题
数据结构·算法
YGGP13 小时前
【Golang】LeetCode 54. 螺旋矩阵
算法·leetcode·矩阵
JavaLearnerZGQ13 小时前
Spring Boot 流式响应接口核心组件解析
java·spring boot·后端