leetcode-46全排列,使用递归回溯

小李不在ovo 2022-01-18 14:15:32

深度搜索优先,树型结构

class Solution {
    public List<List<Integer>> permute(int[] nums) {
        int len = nums.length;
        List<List<Integer>> list = new ArrayList<>();
        if (len==0){
            return list;
        }
        Deque<Integer> deque = new ArrayDeque<>();
        boolean[] isused = new boolean[len];//标记该点元素是否可用
        method(nums,len,0,deque,isused,list);
        return list;
    }

    private void method(int[] nums, int len, int height, Deque<Integer> deque, boolean[] isused, List<List<Integer>> list) {
        if (height==len){
            list.add(new ArrayList<>(deque));
            return;
        }
        for (int i = 0; i < len; i++) {
            if (isused[i]){
                continue;
            }
            deque.addLast(nums[i]);
            isused[i]=true;
            method(nums,len,height+1,deque,isused,list);
            deque.removeLast();
            isused[i]=false;
        }
    }
}

 

 

...全文
61 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,633

社区成员

发帖
与我相关
我的任务
社区描述
欢迎大家来到抱团内卷学习社区,在这里大家可以分享自己的学习笔记,求职心得,一起记录彼此的成长历程。社区群号:94108843,WX公众号:【兴趣使然的草帽路飞】
社区管理员
  • 路  飞
  • 一百个Chocolate
  • 灰小猿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

最怕你一生碌碌无为,还安慰自己平凡可贵!

努力提高自己的知识储备,助力每一位冲刺大厂的小伙伴!

祝大家前程似锦,offer连连!

注意:每个月活跃积分最高的小伙伴,可以获得社区管理员权限哦!

试试用AI创作助手写篇文章吧