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