46. 全排列

46. 全排列

回溯

java 复制代码
class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    boolean[] vis;

    public List<List<Integer>> permute(int[] nums) {
        vis = new boolean[nums.length];
        backtrack(nums);
        return res;
    }

    void backtrack(int[] nums){
        if(path.size() == nums.length){
            res.add(new ArrayList<>(path));
            return;
        }

        for(int i = 0; i < nums.length; i++){
            if(vis[i]) continue;
            path.add(nums[i]);
            vis[i] = true;
            backtrack(nums);
            vis[i] = false;
            path.remove(path.size() - 1);
        }
    }
}
相关推荐
致Great1 小时前
DeepSeek Harness插件开发实战教程:我让它自己写了一个 arXiv 搜索插件
算法
罗西的思考6 小时前
【Agent OS / AIOS】AOHP 深度解读:当 OS 开始为 Agent 而设计
人工智能·算法·机器学习
民乐团扒谱机6 小时前
【微实验】组合优化matlab实战(马科维茨投资模型):在收益与风险之间,寻找最优的人生配比
大数据·人工智能·算法·机器学习·数学建模·matlab·组合优化
Nil2087 小时前
leetcode 160相交链表
算法·leetcode·链表
迷途之人不知返8 小时前
算法系列2:滑动窗口
算法
Herbert_hwt8 小时前
C语言零基础入门:循环控制与数据类型详解
c语言·数据结构·算法
Tisfy10 小时前
LeetCode 3090.每个字符最多出现两次的最长子字符串:二重循环 / 滑动窗口
算法·leetcode·字符串·题解·模拟·双指针·滑动窗口
-dzk-10 小时前
【技巧】LC 136.只出现一次的数字
算法·异或
有点。10 小时前
C++二叉树二(练习题)
数据结构·c++·算法·图论
专注仿真11 小时前
问答大模型技术方案算法实现-RAPTOR树构建算法与BEG集成使用
python·算法