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);
        }
    }
}
相关推荐
^yi7 小时前
【Linux系统编程】进程状态的理解
算法·僵尸进程·孤儿进程·进程状态·挂起状态·阻塞状态
冻柠檬飞冰走茶8 小时前
PTA基础编程题目集 7-7 12-24小时制(C语言实现)
c语言·开发语言·数据结构·算法
长不胖的路人甲8 小时前
二叉排序树(BST)Java 完整实现 + 删除思路详解
java·开发语言·算法
geovindu8 小时前
python: Breadth First Search Algorithm and Depth First Search Algorithm
开发语言·后端·python·算法·搜索算法
长不胖的路人甲8 小时前
可达性分析法(根搜索算法)完整详解
java·jvm·算法
paeamecium9 小时前
【PAT甲级真题】- Kuchiguse (20)
数据结构·c++·python·算法·pat考试·pat
青山木9 小时前
Hot 100 --- 全排列
java·数据结构·算法·leetcode·深度优先
海兰9 小时前
【高速缓存】RedisVL 存储类型选择指南:Hash 与 JSON
人工智能·redis·算法·缓存·json·哈希算法
KaMeidebaby9 小时前
卡梅德生物技术快报|核酸适配体文库筛选:核酸适配体文库筛选全流程技术解析:NGS与AI辅助方案的设计与实践
前端·人工智能·物联网·算法·百度
数聚天成DeepSData9 小时前
CWRU轴承数据集官方入口与替代获取渠道(2025核实版)
算法