• leetcode——47.全排列II


    回溯

    public List<List<Integer>> permuteUnique(int[] nums) {
            List<List<Integer>> result = new ArrayList<>();
            boolean[] visited = new boolean[nums.length];
            Arrays.sort(nums);
            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;
                if(i>0 && !visited[i-1] && nums[i] == nums[i-1]) continue;
                visited[i] = true;
                temp.add(nums[i]);
                backtrack(result, nums, temp, visited);
                visited[i] = false;
                temp.remove(temp.size()-1);
            }
        }

    依然是第二遍,依然不会做。。。

    ——2020.7.30

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    有序向量
    无序向量
    设计模式入门
    策略模式
    面向对象相关知识点
    MySQL数据库知识培训
    数据库业务规范
    go最小路径
    go求质数
    CSS3
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13405230.html
Copyright © 2020-2023  润新知