力扣 中等 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;
            }
        }
    }
}
相关推荐
pursuit_csdn12 分钟前
力扣周赛 - 479
算法·leetcode·职场和发展
飞天狗11114 分钟前
C. Needle in a Haystack
算法
用户03048059126314 分钟前
【Spring进阶】深入理解 FactoryBean:定制化 Bean 的秘密武器
java
BBB努力学习程序设计19 分钟前
深入理解 Java 多态:解锁面向对象编程的灵活性
java
JavaGuide20 分钟前
京东零售后端一二面,附参考答案!
java·后端
FMRbpm21 分钟前
顺序表实现队列
数据结构·c++·算法·新手入门
飞天狗11122 分钟前
G. Mukhammadali and the Smooth Array
数据结构·c++·算法
用户03048059126324 分钟前
Spring Validation教程
java
Hello.Reader25 分钟前
DTO / VO / BO / Entity 分层到底怎么用?
java·分层
CQ_YM26 分钟前
数据结构之树
数据结构·算法·