Subset
来源:互联网 发布:radius认证端口 编辑:程序博客网 时间:2024/05/04 21:21
转载,源地址:http://blog.csdn.net/u011095253/article/details/9158397
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], []]
分析:
这道题是要求生成所有子集,那么首先我们有一个能返回所有子集的ArrayList res, 和一个临时变量ArrayList tmp, 当tmp满足一定条件的时候,往res里面添加结果
Subset这道题的条件比较直观,就是每当我们添加了一个元素,都是一个新的子集。那么我们怎么保证不会出现重复集合呢。我们引入一个int pos用来记录此子集的起点在哪,比如当pos = 1的时候就是从第二个元素往后循环添加元素(0 base),每次当此层用了第i个元素,那么下一层需要传入下一个元素的位置i+1 除此之外,当循环结束要返回上一层dfs的时候我们需要把这一层刚添加元素删去。
比如输入集合为[1,2,3]应当是这么运行,
[]
[1]
[1,2]
[1,2,3] //最底层子循环到头返回删去3,上一层的子循环也到头删去2
//而此时,这一层循环刚到2,删去后还可以添加一个3
[1,3] //删除3,删除1
[2]
[2,3] //删除3,删除2
[3]
0 0
- subset
- Subset
- Subset
- Subset
- subset
- subset
- subset
- 2.2 subset
- USACO subset
- subset(2)
- Subset Sums
- Subset Sums
- Subset Sums
- Subset Problem
- Subset Sums
- USACO subset
- Combination, subset
- leetcode Subset
- 索引扫描
- 记点东西
- 《设计心理学》读书笔记
- eclipse 启动出错
- Linux系统维护必备命令--chroot
- Subset
- 连接数据库提示无法识别的转义序列
- NYOJ 题目219 An problem about date(数学,吉姆拉尔森公式)
- 关于C语言中两个惊叹号(!)的问题
- 究竟线框图为什么要画,以及如何画
- 兼容主流浏览器复制插件jQuery-zclip
- 1075. PAT Judge (25)
- 字符串分割(C++)
- Boost.Asio c++ 网络编程翻译(14)