解题思路:

要生成子集,对于vector 中的每个数,对于每个子集有两种情况,加入或不加入。

因此代码:

class Solution {
public:
void subsetG(vector<int> nums, vector<vector<int>>& result, vector<int> temp, int c)
{
if(c>=nums.size())
{
result.push_back(temp);
return ;
}
int i=c;
subsetG(nums,result, temp,i+1);
temp.push_back(nums[i]);
subsetG(nums,result, temp,i+1); } vector<vector<int>> subsetsWithDup(vector<int>& nums) { vector<vector<int>> result;
vector<int> temp;
subsetG(nums, result,temp,0); return result; }
};

 

 但是这样会造成许多重复的子集,因为重复的情况我们只需要考虑一次.可以分为拿和不拿. 如果拿的话就按照正常往下一层搜索, 如果不拿当前值的话, 那么也要跳过接下来和当前值相等的元素.

class Solution {
public:
void subsetG(vector<int> nums, vector<vector<int>>& result, vector<int> temp, int c)
{
if(c>=nums.size())
{
result.push_back(temp);
return ;
}
int i=c;
while(c+1<nums.size()&&nums[i]==nums[c+1])
{
c++;
}
subsetG(nums,result, temp,c+1); temp.push_back(nums[i]); subsetG(nums,result, temp,i+1); } vector<vector<int>> subsetsWithDup(vector<int>& nums) { vector<vector<int>> result;
vector<int> temp;
subsetG(nums, result,temp,0); return result; }
};

  

leetcode 90. subsets的更多相关文章

  1. [LeetCode] 90.Subsets II tag: backtracking

    Given a collection of integers that might contain duplicates, nums, return all possible subsets (the ...

  2. [leetcode]90. Subsets II数组子集(有重)

    Given a collection of integers that might contain duplicates, nums, return all possible subsets (the ...

  3. [LeetCode] 90. Subsets II 子集合 II

    Given a collection of integers that might contain duplicates, nums, return all possible subsets (the ...

  4. LeetCode 90. Subsets II (子集合之二)

    Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...

  5. [LeetCode] 90. Subsets II 子集合之二

    Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...

  6. Leetcode#90 Subsets II

    原题地址 跟Subsets(参见这篇文章)类似. 但因为有重复元素,所以要考虑去重问题. 什么情况下会出现重复呢?比如S = {5, 5, 5},如果要选1个5,一共有C(3,1)=3种选法,即100 ...

  7. leetCode 90.Subsets II(子集II) 解题思路和方法

    Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...

  8. LeetCode Problem 90. Subsets II

    python solution 123456789101112131415161718192021222324252627 class (object): def subsetsWithDup(sel ...

  9. leetcode 78. Subsets 、90. Subsets II

    第一题是输入数组的数值不相同,第二题是输入数组的数值有相同的值,第二题在第一题的基础上需要过滤掉那些相同的数值. level代表的是需要进行选择的数值的位置. 78. Subsets 错误解法: cl ...

随机推荐

  1. redis主从复制几种结构

    1.redis主从: 主从有好几种复制模式 一主一从:一个主服务器,一个从服务器,适合并发量较小的 一主多从:适合于读多写少的,结构: 3. 树状结构

  2. 洛谷P1117 优秀的拆分

    题意:求一个字符串中有多少形如AABB的子串. 解:嗯...我首先极度SB的想了一个后缀自动机套线段树启发式合并的做法,想必会TLE. 然后跑去看题解,发现实在是妙不可言... 显然要对每个位置求出向 ...

  3. A1098. Insertion or Heap Sort

    According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...

  4. gradle的安装配置成功标志

    gradle主要位于AndroidStudio中 看我的目录 在环境变量里添加用户变量 GRADLE_HOME 然后在环境变量 path 中增加 %GRADLE_HOME%\bin;,如图所示 测试配 ...

  5. 记录EXCEL格式和TXT文本格式之间的互转

    EXCEL格式转变成TXT文本格式 1.打开execl文档,点击文件另存为 2.选择txt保存 3.重命名文档,打开该txt文档 4.按Ctrl+H,将文档中空格转换成其他分割符,单击确定 TXT格式 ...

  6. java 中 byte[]、File、InputStream 互相转换

    1.将File.FileInputStream 转换为byte数组: File file = new File("test.txt"); InputStream input = n ...

  7. Mock4 moco框架中如何加入cookies

    新建一个 startupWithCookies.json,因为cookies也是请求当中带的,所以,要写在request里面,cookies是k-v的形式,就拿登陆来说吧,登陆以后会的cookies, ...

  8. DBMS客户端是否安装:Make sure DBMS client is installed and this required library is available for dynamic loading

    Symptom The full error message is as follows:Error logging in.  Unable to process the database trans ...

  9. 【简单易用的傻瓜式图标设计工具】Logoist 3.1 for Mac

    [简介] Logoist 是一款Mac上强大易用的傻瓜式图标设计制作工具,通过使用内置模板和预设效果,您可以立即创建高质量的图形内容和艺术作品.通过使用该应用程序,可用于制作图标LOGO. 一款用于创 ...

  10. 【矢量绘图工具】Adobe Illustrator (AI) CC 2019 for Mac 23.0

    以上图片来源于互联网分享,如涉及版权问题请联系作者删除. 文章素材来源:风云社区(www.scoee.com) 下载地址:风云社区(www.scoee.com)   [简介] Adobe illust ...