【LeetCode】78_Subsets
2015-08-19 17:24
399 查看
题目
Subse
Given a set of distinct integers, nums, 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 nums =
[1,2,3],
a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
解析
我的思路是这样的,例如进行到1,2元素,此时vector<vector<int>>中包含的集合有[
[1]
[2]
[1,2]
[]
]
这个时候将集合中的子集全部添加元素3,得到
[
[1,3]
[2,3]
[1,2,3]
[3]
]
将新得到的这些自己并入之前的集合中,得到
[
[1]
[2]
[1,2]
[]
[1,3]
[2,3]
[1,2,3]
[3]
]
这就是1,2,3元素的全部子集。
同样的对元素4一样的操作。迭代的思路也非常清晰。
代码如下
class Solution { public: vector<vector<int>> subsets(vector<int>& nums) { sort(nums.begin(),nums.end()); vector<vector<int>> ret; vector<int> in; ret.push_back(in); for (int i = 0; i<nums.size(); i++) { int size = ret.size(); for (int j=0 ;j<size;j++) { vector<int> in(ret[j]); in.push_back(nums[i]); ret.push_back(in); } } return ret; } };个人觉得这是最满意的一次刷题了。思路清晰,代码简洁。
大神的代码看了一下,看不下去。就这样呗。
相关文章推荐
- iOS SDK详解之UIToolBar
- 获取本机外网ip地址
- 求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
- smarty基础之五配置和两方法
- Mac 中安装 Apache Ant
- 全排序算法
- android获取设备唯一标识device_token
- java代码--文件过滤器
- 输入url发生了什么
- MySQL在创建索引之前一定要想到的事情
- 替换空格
- Python Video tutorial
- 深入浅出 RPC-(2)
- 问题:OAuth2.0;结果:帮你深入理解OAuth2.0协议
- Python游戏服务器开发日记(二)绕过GIL启动多线程Python环境
- Android反编译教程
- MySQLDump在使用之前一定要想到的事情
- 树莓派2在U8300W平台上用pppd拨号时出现“pppd: The remote system is required to authenticate itself”
- Introduction to Java Programming编程题3.22<判断点是否在矩形内>
- java 垃圾回收总结(1)