力扣 中等 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 分钟前
leetcode算法(145.二叉树的后序遍历)
数据结构·算法·leetcode·二叉树
华如锦8 分钟前
四:从零搭建一个RAG
java·开发语言·人工智能·python·机器学习·spring cloud·计算机视觉
Tony_yitao10 分钟前
22.华为OD机试真题:数组拼接(Java实现,100分通关)
java·算法·华为od·algorithm
JavaGuru_LiuYu11 分钟前
Spring Boot 整合 SSE(Server-Sent Events)
java·spring boot·后端·sse
2501_9418752813 分钟前
在东京复杂分布式系统中构建统一可观测性平台的工程设计实践与演进经验总结
c++·算法·github
爬山算法15 分钟前
Hibernate(26)什么是Hibernate的透明持久化?
java·后端·hibernate
sonadorje15 分钟前
梯度下降法的迭代步骤
算法·机器学习
彭于晏Yan17 分钟前
Springboot实现数据脱敏
java·spring boot·后端
漫随流水17 分钟前
leetcode算法(94.二叉树的中序遍历)
数据结构·算法·leetcode·二叉树
luming-0222 分钟前
java报错解决:sun.net.utils不存
java·经验分享·bug·.net·intellij-idea