ger tinc iter div spa 必须 public 包含 整数
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.
Example
If S = [1,2,3], a solution is:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
Challenge
Can you do it in both recursively and iteratively
题意
给定一个含不同整数的集合,返回其所有的子集
注意事项
子集中的元素排列必须是非降序的,解集必须不包含重复的子集
解法一:
class Solution {
public:
/*
* @param nums: A set of numbers
* @return: A list of lists
*/
vector < vector < int >> subsets(vector < int > &nums) {
// write your code here
vector < vector < int > >results;
vector < int > result;
sort(nums.begin(), nums.end());
helper(nums, 0, result, results);
return results;
}
void helper(vector < int > &nums, int start, vector < int > &result, vector < vector < int > >&results) {
results.push_back(result);
for (int i = start; i < nums.size(); ++i) {
result.push_back(nums[i]);
helper(nums, i + 1, result, results);
result.pop_back();
}
}
};
17.Subsets[medium]
来源: http://www.bubuko.com/infodetail-2467983.html