LeetCode(Subsets)
来源:互联网 发布:小猪cms源码2017 编辑:程序博客网 时间:2024/04/20 07:08
Subsets
深搜:
class Solution {public: vector<vector<int> > subsets(vector<int> &S) { sort(S.begin(),S.end()); vector<vector<int> > result; vector<int> path; dfs(S,result,path,0); return result; } void dfs(vector<int> &S,vector<vector<int> > &result,vector<int> &path,int i) { if(i==S.size()) { result.push_back(path); return; } //不选S[i] dfs(S,result,path,i+1); //选S[i] path.push_back(S[i]); dfs(S,result,path,i+1); path.pop_back(); }};
二进制法:
前提:集合元素个数不超过int位数(32位)
class Solution {public: vector<vector<int> > subsets(vector<int> &S) { sort(S.begin(),S.end()); vector<vector<int> > result; int n=S.size(); for(int i=0;i<(1<<n);++i) { vector<int> path; for(int j=0;j<n;++j) { if(i&(1<<j))path.push_back(S[j]); } result.push_back(path); } return result; }};
Subsets II
深搜:
class Solution {public: vector<vector<int> > subsetsWithDup(vector<int> &S) { sort(S.begin(),S.end()); vector<vector<int> > result; vector<int> path; dfs(S,result,path,0); return result; } //考虑以S[i]开头的选择方案 void dfs(vector<int> &S,vector<vector<int> > &result,vector<int> &path,int i) { result.push_back(path); for(int j=i;j<S.size();++j) { if(j>i&&S[j]==S[j-1])continue; path.push_back(S[j]); dfs(S,result,path,j+1); path.pop_back(); } }};
二进制法:
前提:集合元素个数不超过int位数(32位)
class Solution {public: vector<vector<int> > subsets(vector<int> &S) { sort(S.begin(),S.end()); vector<vector<int> > result; set<vector<int> > res; int n=S.size(); for(int i=0;i<(1<<n);++i) { vector<int> path; for(int j=0;j<n;++j) { if(i&(1<<j))path.push_back(S[j]); } res.push_back(path); } copy(res.begin(),res.end(),back_inserter(result)); return result; }};
0 0
- 【LeetCode】 Subsets Subsets II
- 【LeetCode】Subsets & Subsets II
- LeetCode Subsets && Subsets II
- LeetCode Subsets && Subsets II
- LeetCode-Subsets & Subsets II
- LeetCode: Subsets
- LeetCode Subsets
- [Leetcode] Subsets
- LeetCode : Subsets
- [LeetCode] Subsets
- Leetcode: Subsets
- Leetcode: Subsets ||
- [leetcode] subsets
- Leetcode - Subsets
- [LeetCode]Subsets
- LeetCode-Subsets
- LeetCode - Subsets
- LeetCode | Subsets
- 优步很酷么?
- 好好做点事
- Shell if
- 可是我不愿意陪你做一只蘑菇
- Ubuntu安装搜狗输入法、flashplayer、配置VPN(三)
- LeetCode(Subsets)
- 300个国外优秀网站
- 九章算法面试题33 数组波峰
- 执行SVN up和svn merge等命令出现在首位置的各字母含义以及SVN合并别人的修改
- 利用堆栈进行四则运算
- [LeetCode] Pascal's Triangle II
- lua的面向对象
- 登录远程仓库并创建自己的工程
- 最佳情人