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

LeetCode 90. 子集 II

时间:2023-06-07 21:12:40浏览次数:35  
标签:10 cnt int res II vector 90 LeetCode

class Solution {
public:
    unordered_map<int ,int> cnt;
    vector<vector<int>> res;
    vector<int> path;
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        for(auto i:nums)
            cnt[i]++;
        dfs(-10);//从-10开始枚举每一个数
        return res;
    }
    void dfs(int u)
    {
        if(u>10)
        {
            res.push_back(path);
            return ;
        }
        for(int i=0;i<cnt[u]+1;i++)//枚举每一个数选i个的情况
        {
            dfs(u+1);
            path.push_back(u);
            //第一次递归时,path是没有加入数字u的,第i递归path加入了i-1个数字u
        }
        //退出循环时,需要恢复现场,此时已经加入了cnt[u]个数字u
        for(int i=0;i<cnt[u]+1;i++)
            path.pop_back();
    }
};

标签:10,cnt,int,res,II,vector,90,LeetCode
From: https://www.cnblogs.com/tangxibomb/p/17464575.html

相关文章

  • 【leetcode】21. Merge Two Sorted Lists
    将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]提示:两个链表的节点数目范围是[0,......
  • Leetcode 2611. 老鼠和奶酪
    题目:有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。下标为i 处的奶酪被吃掉的得分为:如果第一只老鼠吃掉,则得分为 reward1[i] 。如果第二只老鼠吃掉,则得分为 reward2[i] 。给你一个正整数数组 reward1 ,一个正整数数组 reward2 ,和一个非负整......
  • 每个 ASP.NET 开发人员都应该知道的 IIS 管道中的 HTTP 请求生命周期事件
    原文:https://www.dotnetcurry.com/aspnet/747/http-request-lifecycle-events-iis-pipeline-aspnet......
  • B. Mine Sweeper II
    题解:先给一个置反:把原来的空白格变成雷,把原来的雷变成空白格。这道题的重点就是要意识到,一个雷能够影响周围多少个空白格,那么置反之后,就会有多少个原来的空白格变成的雷影响它。那么B要和Asum相等,只要和A相同,或者和A的置反图相同即可。 ......
  • 【每日一题】LeetCode 859. 亲密字符串
    题目描述给你两个字符串s和goal,只要我们可以通过交换s中的两个字母得到与goal相等的结果,就返回true;否则返回false。交换字母的定义是:取两个下标i和j(下标从0开始)且满足i!=j,接着交换s[i]和s[j]处的字符。例如,在“abcd”中交换下标0和下标2的元素可以......
  • 【每日一题】LeetCode 390. 消除游戏
    题目列表arr由在范围[1,n]中的所有整数组成,并按严格递增排序。请你对arr应用下述算法:从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。重复上面的步骤,但这次是从右到左。也就是,删除最右侧的数字,然后剩下的数字每隔一个删除一个。不断重复这两步,从左到右......
  • 【每日一题】LeetCode 786. 第K个最小的素数分数(待补全题解思路)
    题目给你一个按递增顺序排序的数组arr和一个整数k。数组arr由1和若干素数组成,且其中所有整数互不相同。对于每对满足0<i<j<arr.length的i和j,可以得到分数arr[i]/arr[j]。那么第k个最小的分数是多少呢?以长度为2的整数数组返回你的答案,这里answer......
  • 【每日一题】LeetCode 438.找到字符串中所有字母异位词
    题目给定两个字符串s和p,找到s中所有p的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串(包括相同的字符串)。输入:s=“cbaebabacd”,p=“abc”输出:[0,6]解释:起始索引等于0的子串是“cba”,它是“abc”......
  • 【每日一题】LeetCode 458. 可怜的小猪(思路清奇)
    题目有buckets桶液体,其中正好有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断。不幸的是,你只有minutesToTest分钟时间来确定哪桶液体是有毒的。喂猪的规则如下:选择若干活猪进行喂养可以允许......
  • 【每日一题】AcWing 1904. 奶牛慢跑
    题目奶牛们又出去锻炼蹄子去了!有N头奶牛在无限长的单行道上慢跑。每头奶牛在跑道上开始奔跑的位置互不相同,一些奶牛的奔跑速度可能相同,也可能不同。由于跑道是单行道,十分狭窄,奶牛们无法相互超越。当一头速度很快的牛追上另一头牛时,她必须减速至与另一头牛速度相同以免发生碰撞,并成......