Subsets

Given a set of distinct integers, 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,3], a solution is:

[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]

解法一:

遍历S.size()位数的所有二进制数,1代表对应位置的元素在集合中,0代表不在。

一共2^n种情况。

详细步骤参照Subsets II

class Solution {
public:
vector<vector<int> > subsets(vector<int> &S) {
vector<vector<int> > result;
int size = S.size();
for(int i = ; i < pow(2.0, size); i ++)
{//2^size subsets
vector<int> cur;
int tag = i;
for(int j = size-; j >= ; j --)
{//for each subset, the binary presentation has size digits
if(tag% == )
cur.push_back(S[j]);
tag >>= ;
if(!tag)
break;
}
sort(cur.begin(), cur.end());
result.push_back(cur);
}
return result;
}
};

解法二:

遍历所有元素,记当前元素为S[i]

遍历当前所有获得的子集,记为ret[j]

将S[i]加入ret[j],即构成了一个新子集。

详细步骤参照Subsets II

class Solution {
public:
vector<vector<int> > subsets(vector<int> &S) {
sort(S.begin(), S.end());
vector<vector<int> > ret;
vector<int> empty;
ret.push_back(empty);
for(int i = ; i < S.size(); i ++)
{
int size = ret.size();
for(int j = ; j < size; j ++)
{
vector<int> newset = ret[j];
newset.push_back(S[i]);
ret.push_back(newset);
}
}
return ret;
}
};

最新文章

  1. Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (utf-8)
  2. PHP 知识点链接
  3. MapReduce输入格式
  4. TI CC254x BLE教程 3
  5. share point 读取 metadata
  6. ListView与GridView异步加载图片
  7. LinearLayout和RelativeLayout
  8. HDU2594 Simpsons’ Hidden Talents 字符串哈希
  9. jFinal中报对应模型不存在的错误(The Table mapping of model: demo.User not exists)
  10. node.js 1Million concurrent connections!
  11. POJ 1936 All in All(模拟)
  12. VS2012中启动性能分析 独占样本数的分析
  13. USART笔记 基于STM32F107VCT6
  14. BootStrap 智能表单系列 首页 (持续更新中...)
  15. webstorm中关于vue的一些问题
  16. NodeJS 中npm包管理工具
  17. angular学习笔记 父子组件传值
  18. 错误: H.264 bitstream malformed, no startcode found,
  19. git更新Activemq在远程github上指定版本的源码步骤
  20. hearbeat of RAC

热门文章

  1. DotNet.Utilities工具类
  2. java项目怎样添加jar包依赖?
  3. win10怎么彻底关闭自动更新
  4. Eclipse maven构建springmvc项目
  5. Memcached源码分析——连接状态变化分析(drive_machine)
  6. Silverlight:《Pro Silverlight5》读书笔记 之 Layout
  7. combogrid 摘要
  8. easyui datagrid checkbox multiple columns have been done do
  9. U盘安装Centos7.0图解
  10. Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip