class Solution {//生成全部【不反复】的组合。生成组合仅仅要採用递归,由序列从前往后遍历就可以。

至于去重,依据分析相应的递归树可知。同一个父节点出来的两个分支不能一样(即不能与前一个元素一样,且前一个元素要与之在同层)。

public:
int *b,n;
vector<int>a;
vector<vector<int> >ans;
void dfs(int id,int len){
if(len>0){
vector<int>v(b,b+len);
ans.push_back(v);
}
for(int i=id+1;i<n;++i){
if(i>id+1&&a[i]==a[i-1])continue;//去重
b[len]=a[i];
dfs(i,len+1);
}
}
vector<vector<int> > subsetsWithDup(vector<int> &S) {
sort(S.begin(),S.end());
a=S;
n=S.size();
b=new int[S.size()];
ans.push_back(vector<int>());
dfs(-1,0);
delete[]b;
return ans;
}
};

最新文章

  1. 关于SQL语句查询区分大小写
  2. C#编码规范 转 http://www.cnblogs.com/wulinfeng/archive/2012/08/31/2664720.html
  3. css3的背景颜色渐变@线性渐变
  4. 关于ZF2中一点感悟,service_manager
  5. Find the smallest number whose digits multiply to a given number n
  6. SQLlite(WebSQL)如何排序并分页查询(SQLlite语法)
  7. JQ方法大全
  8. storm-编程入门
  9. iOS 9 新特性
  10. Cracking Microservices practices
  11. Operation not permitted引发的惊魂72小时
  12. Windows环境下使用VS2005编译OpenSSL
  13. CSS 文本溢出时显示省略标记
  14. windows 分页缓冲池 非分页缓冲池
  15. js小结
  16. Pairs Forming LCM LightOJ - 1236 (算术基本定理)
  17. python的特殊方法介绍
  18. java集合类整理
  19. python类内部调用自己的成员函数必须加self
  20. Documentation/usb/gadget_configfs.txt

热门文章

  1. 基于Linux的v4l2视频架构驱动编写
  2. 2019-03-22 Python Scrapy 入门教程 笔记
  3. Vue - vue.js 常用指令
  4. Golang-and-package-version-managment
  5. webpack加载器(Loaders)
  6. SpringBoot中使用过滤器Filter
  7. php获取时间是星期几
  8. JavaScript push(),join() 函数
  9. spring boot基础
  10. HDU 4335 Contest 4