#17 Subsets
2016-08-13 12:41
148 查看
题目描述:
Given a set of distinct integers, return all possible subsets.
Notice
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
Have you met this question in a real interview?
Yes
Example
If S =
is:
题目思路:
这题和#18很像,不同的是由于给的数组里没有重复元素,我们不需要考虑存在相同subset的情况,直接把sofar放到ans里就好了。
Mycode(AC = 18ms):
class Solution {
public:
/**
* @param S: A set of numbers.
* @return: A list of lists. All valid subsets.
*/
vector<vector<int> > subsets(vector<int> &nums) {
// write your code here
vector<vector<int>> ans;
vector<int> sofar;
sort(nums.begin(), nums.end());
subsets(ans, sofar, nums, 0);
return ans;
}
void subsets(vector<vector<int>>& ans,
vector<int>& sofar,
vector<int> &nums,
int idx)
{
if (idx >= nums.size()) {
ans.push_back(sofar);
return;
}
vector<int> tmp = sofar;
// not pick nums[idx]
subsets(ans, tmp, nums, idx + 1);
// pick nums[idx]
tmp.push_back(nums[idx]);
subsets(ans, tmp, nums, idx + 1);
}
};
Given a set of distinct integers, return all possible subsets.
Notice
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
Have you met this question in a real interview?
Yes
Example
If S =
[1,2,3], a solution
is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
题目思路:
这题和#18很像,不同的是由于给的数组里没有重复元素,我们不需要考虑存在相同subset的情况,直接把sofar放到ans里就好了。
Mycode(AC = 18ms):
class Solution {
public:
/**
* @param S: A set of numbers.
* @return: A list of lists. All valid subsets.
*/
vector<vector<int> > subsets(vector<int> &nums) {
// write your code here
vector<vector<int>> ans;
vector<int> sofar;
sort(nums.begin(), nums.end());
subsets(ans, sofar, nums, 0);
return ans;
}
void subsets(vector<vector<int>>& ans,
vector<int>& sofar,
vector<int> &nums,
int idx)
{
if (idx >= nums.size()) {
ans.push_back(sofar);
return;
}
vector<int> tmp = sofar;
// not pick nums[idx]
subsets(ans, tmp, nums, idx + 1);
// pick nums[idx]
tmp.push_back(nums[idx]);
subsets(ans, tmp, nums, idx + 1);
}
};
相关文章推荐
- LeetCode: Subsets
- Leetcode: Subsets (Recursive)
- Write a method that returns all subsets of a set.
- LeetCode - Subsets
- LeetCode OJ——Subsets
- LeetCode:Subsets I II
- (论文分析) Machine Learning -- Predicting Diverse Subsets Using Structural SVMs
- Subsets
- leetcode学习笔记:Combinations & Subsets
- leetcode -day31 Subsets I II
- LeetCode Subsets II
- LeetCode 078 Subsets
- LeetCode-Subsets
- leetcode 之 Subsets
- 【LeetCode】Subsets 解题报告
- Subsets
- Leetcode:Subsets 求数组的所有子集(DFS)
- Subsets
- Find longest covered length of non overlapping interval subsets
- DFS Subsets II