leetcode46:全排列

全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

java 复制代码
List<List<Integer>> list = new ArrayList<>();

    public List<List<Integer>> permute(int[] nums) {
        LinkedList<Integer> res = new LinkedList<>();
        for (int i = 0; i < nums.length; i++) {
            res.add(nums[i]);
        }
        backTrack(nums,0,res);
        return list;
    }

    void backTrack(int nums[], int start, LinkedList<Integer> res){
        if(start == nums.length){
            list.add(new ArrayList<>(res));
            return;
        }
        for (int i = start; i < nums.length; i++) {
            swap(res,start,i);
            backTrack(nums,start+1,res);
            swap(res,start,i);
        }
    }

    private void swap(LinkedList<Integer> res, int start, int i) {
        int a = res.get(start);
        res.set(start,res.get(i));
        res.set(i,a);
    }

回溯

相关推荐
郑洁文20 分钟前
学生信息管理系统
java·毕业设计·学生信息管理系统
剑挑星河月22 分钟前
31.下一个排列
java·算法·leetcode
ch.ju22 分钟前
Java Programming Chapter 4——Private attribute
java·开发语言
许彰午25 分钟前
12_ArrayList与LinkedList深度对比
java·前端·python
C+++Python43 分钟前
如何在 Java 中使用 BIO、NIO 和 AIO?
java·开发语言·nio
Kurisu5751 小时前
深度拆解:从令牌桶到滑动窗口,高并发系统限流算法的数学本质与边界
java·网络·算法
repetitiononeoneday1 小时前
【面试题】Redis缓存穿透如何解决?
java·redis·缓存
Solis程序员1 小时前
亿级流量设计之布隆过滤器原理、优缺点及主流替代方案
java