78. Subsets
来源:互联网 发布:股票数据统计软件 编辑:程序博客网 时间:2024/05/18 02:44
Subsets
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],
[]
]
解析
思路一:
求幂集问题
刚开始没有一点思路,但是我刚刚做了Combinations,可以说Combinations是本题的一个子过程。原因是,组合个数从0到n遍历一遍,就是本题的结果了。
思路一代码
class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { sort(nums.begin(),nums.end()); this->n=nums.size(); //k:0~n for(int i=0;i<=nums.size();i++){ this->k=i; com(0,0,nums); } return vvi; }private: void com(int j,int t,vector<int>& nums){ if(j==k){ vvi.push_back(vi); } else{ for(int i=t;i<n;i++){ vi.push_back(nums[i]); com(j+1,i+1,nums); vi.pop_back(); } } }private: vector<vector<int>> vvi; vector<int> vi; int k; int n;};
代码二
对思路一进行一些改进。基本思想不变
class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { sort(nums.begin(),nums.end()); com(0,nums); return vvi; }private: void com(int pos,vector<int>& nums){ vvi.push_back(vi); if(pos>=nums.size()) return ; for(int i=pos;i<nums.size();i++){ vi.push_back(nums[i]); com(i+1,nums); vi.pop_back(); } }private: vector<vector<int>> vvi; vector<int> vi;};
0 0
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- java http://blog.csdn.net/wike163/article/details/6635321
- Linux dd命令中dsync与fdatasync的区别
- 基础练习 字母图形
- React+Native Unable to download JS Bundle解决办法
- 七步理解深度学习
- 78. Subsets
- eclipse不编译
- CSS padding margin输入不同值个数的效果详解
- C++ 回调机制
- java.io.FileWriter class doesn’t use UTF-8 by default
- 51单片机入门之四:静态数码管
- JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) ) http://www.open-open.com/lib/view/open1432200119489.html
- 委托
- [C++]类模板