首页 > 其他 > 详细

leetcode ——46.全排列

时间:2020-07-30 19:17:25      阅读:64      评论:0      收藏:0      [点我收藏+]

回溯

public List<List<Integer>> permute(int[] nums) {
        List<List<Integer>> result = new ArrayList<>();
        boolean[] visited = new boolean[nums.length];
        backtrack(result,nums,new ArrayList<Integer>(),visited);
        return result;
    }

    private void backtrack(List<List<Integer>> result, int[] nums, ArrayList<Integer> temp, boolean[] visited) {
        if(temp.size() == nums.length){
            result.add(new ArrayList<>(temp));
            return;
        }
        for(int i = 0;i<nums.length;i++){
            if(visited[i]) continue;
            visited[i] = true;
            temp.add(nums[i]);
            backtrack(result, nums, temp, visited);
            visited[i] = false;
            temp.remove(temp.size()-1);
        }
    }

一段时间不刷题就会变得生疏,,这是第二次做了,还是没能自己做出来。。。

难过。

回溯有什么难的啊,,,

动点脑子,,

——2020.7.30

leetcode ——46.全排列

原文:https://www.cnblogs.com/taoyuxin/p/13405030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!