Subsets II
来源:互联网 发布:文明5金币修改器 知乎 编辑:程序博客网 时间:2024/05/21 03:54
Given a collection of integers that might contain duplicates, S, return all possible subsets.
Note:
- Elements in a subset must be in non-descending order.
- The solution set must not contain duplicate subsets.
For example,
If S = [1,2,2]
, a solution is:
[ [2], [1], [1,2,2], [2,2], [1,2], []]
解题思路:采用递归,分别得到对应长度的子数组的值,注意子数组要求不重复,可以用哈希来做;
#include<iostream>#include<vector>#include<set>#include<algorithm>using namespace std;set<vector<int> >CompareSet;//先输出SubsetLen长度的子串,然后确定索引为SubsetLen+1的值void SubsetsRec(vector<int> &S,vector<int>tmp ,vector<vector<int>>&ResultSubset, int SubsetLen = 0, int Pos = 0){vector<int> v;for (int i = 0; i < SubsetLen;++i)v.push_back(tmp[i]);if (!CompareSet.count(v))//判别当前子数组是否重复{ResultSubset.push_back(v);CompareSet.insert(v);}for (int i = Pos; i < S.size();++i){tmp[SubsetLen] = S[i];//确定子数组中索引号为SubsetLen的值SubsetsRec(S, tmp, ResultSubset, SubsetLen + 1, i + 1);}}vector<vector<int> > subsetsWithDup(vector<int> &S) {vector<vector<int>>ResultSubset;vector<int>SubsetTmp(S.size());sort(S.begin(), S.end());SubsetsRec(S,SubsetTmp ,ResultSubset);return ResultSubset;}
0 0
- 【LeetCode】 Subsets Subsets II
- 【LeetCode】Subsets & Subsets II
- LeetCode Subsets && Subsets II
- Subsets and Subsets II
- LeetCode Subsets && Subsets II
- LeetCode-Subsets & Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- 递归函数优化(笔记)
- 整数趣题(阿姆斯特朗数)
- Unity 二维数组
- LeetCode | #19 Remove Nth Node From End of List
- Android系统启动过程分析代码跟踪。
- Subsets II
- idea结合maven开发spring
- java的反射机制
- 整数趣题(完全数)
- 学习登录窗口与主窗口的运行流程
- 整数趣题(亲密数)
- Listview优化——分页加载
- 【设计模式】外观和建造---总结
- 当我们不能改变学生时