题目链接:https://leetcode.com/problems/subsets/
题面:
78. Subsets
Medium
199151FavoriteShare
Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
题意:产生给定集合的所有子集。
解题:
递归选择不选当前元素,或bfs+队列。
代码:
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector <vector<int>> tmp,res;
vector <int> x;
if(nums.size()==1){
res.push_back(x);
x.push_back(nums[0]);
res.push_back(x);
}
else{
vector <int> y;
for(int i=1;i<nums.size();i++)
y.push_back(nums[i]);
tmp=subsets(y);
for(int i=0;i<tmp.size();i++)
{
res.push_back(tmp[i]);
tmp[i].push_back(nums[0]);
res.push_back(tmp[i]);
}
}
return res;
}
};