首页 > 其他分享 >【DFS】LeetCode 90. 子集 II

【DFS】LeetCode 90. 子集 II

时间:2023-03-06 11:57:48浏览次数:58  
标签:index nums int dfs II path 90 LeetCode

题目链接

90. 子集 II

思路

去重方法与【DFS】LeetCode 40. 组合总和 II思路相似

代码

class Solution {
    private List<List<Integer>> result = new ArrayList<>();
    private Deque<Integer> path = new ArrayDeque<>();

    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);

        dfs(0, nums);

        return result;
    }

    void dfs(int index, int[] nums){
        result.add(new ArrayList<>(path));

        if(index >= nums.length){
            return;
        }

        for(int i = index; i < nums.length; i++){
            if(i != index && nums[i - 1] == nums[i]){
                continue;
            }
            path.addLast(nums[i]);
            dfs(i + 1, nums);
            path.removeLast();
        }
    }
}

标签:index,nums,int,dfs,II,path,90,LeetCode
From: https://www.cnblogs.com/shixuanliu/p/17183165.html

相关文章

  • 【DFS】LeetCode 78. 子集
    题目链接78.子集思路求子集问题和77.组合(opensnewwindow)和131.分割回文串(opensnewwindow)又不一样了。如果把子集问题、组合问题、分割问题都抽象为一......
  • AcWing 4490. 染色题解
    题目描述样例输入:612215211111输出3算法描述思路我们以样例为例讲讲思路。如何确保dfs能顺利便利呢,我们可以使用链式前向星来存图(树)C++代......
  • dell 5090装centos
    真实机安装完centos7版本后,会发现没有网卡,只有lo口。这是因为有些真实机安装了centos系统后没有网卡驱动。需要我们去网上下载一个linux版本的驱动包来安装。先查看我的网......
  • 【DFS】LeetCode 216. 组合总和 III
    题目链接216.组合总和III思路与【DFS】LeetCode40.组合总和II思路一致,只不过candidates数组在题目中明确说明了只有1到9。代码classSolution{private......
  • #yyds干货盘点# LeetCode面试题:组合总和
    1.简述:给你一个无重复元素的整数数组 candidates和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target的所有 不同组合,并以列表形式返回。你......
  • #yyds干货盘点# LeetCode程序员面试金典:交换和
    题目:给定两个整数数组,请交换一对数值(每个数组中取一个数值),使得两个数组所有元素的和相等。返回一个数组,第一个元素是第一个数组中要交换的元素,第二个元素是第二个数组中要交......
  • LeetCode 周赛 335,纯纯手速场!
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。昨晚是LeetCode第335场周赛,你参加了吗?这场周赛整体难度不高,有两道模板题......
  • LeetCode 96. 不同的二叉搜索树(/)
    原题解题目约束题解方法一classSolution{public:intnumTrees(intn){vector<int>G(n+1,0);G[0]=1;G[1]=1;......
  • 【LeetCode二叉树#20】二叉搜索树转换为累加树,巩固二叉树的遍历(特殊的中序遍历)
    将二叉搜索树转换为累加树力扣题目链接(opensnewwindow)给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(GreaterSumTree),使每个节点node的新值......
  • 【LeetCode二叉树#18】修剪二叉搜索树(涉及重构二叉树与递归回溯)
    修剪二叉搜索树力扣题目链接(opensnewwindow)给定一个二叉搜索树,同时给定最小边界L和最大边界R。通过修剪二叉搜索树,使得所有节点的值在[L,R]中(R>=L)。你可能需......