Leetcode_c++: Subsets II (090)
2016-06-07 23:15
519 查看
题目
Given a collection of integers that might contain duplicates, nums, return all possible subsets.Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,2], a solution is:
[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]
算法
和Subsets I的唯一区别就是添加了两行去重的代码。http://blog.csdn.net/doc_sgl/article/details/12260731
#include<iostream> #include<vector> #include<stack> #include <algorithm> using namespace std; const int N=0; class Solution { void findsubset(vector<int> s, int index, vector<int> &subset, vector<vector<int> > &res) { res.push_back(subset); for(int i = index; i< s.size(); i++) { if(i!=index && s[i]==s[i-1])continue; subset.push_back(s[i]); findsubset(s,i+1,subset,res); subset.pop_back(); } } public: vector<vector<int> > subsetsWithDup(vector<int> &S) { // Note: The Solution object is instantiated only once. vector<vector<int> > res; sort(S.begin(),S.end()); vector<int> subset; findsubset(S,0,subset,res); return res; } };
相关文章推荐
- c++/c 产生随机数
- Leetcode_c++: Merge Sorted Array (088)
- c语言实例之函数求参顺序
- 差分约束系统详解 BZOJ 2330 糖果
- C++ error:LNK2005 已经在*.obj中定义
- Leetcode_c++: Maximal Rectangle (085)
- c++:工资类
- Rectangle Area
- 那些年C语言老师没有教给你的东西(一)
- 第15周阅读程序(2)
- 第15周阅读程序(1)
- Leetcode_c++: Largest Rectangle in Histogram (084)
- 【学习C++】C++ Primer Plus (第六版)第十三章编程练习1-4
- c++作业7
- 用C语言绘制一条标准的余弦曲线
- 用C语言绘制一条标准的余弦曲线
- 用C语言绘制一条标准的余弦曲线
- 第14周项目2--两个成员的类模板(2)
- C/C++ 输出乘法口诀表
- C/C++ RPG游戏