您的位置:首页 > 其它

78. Subset

2016-09-01 21:16 106 查看
深搜

class Solution {
public:
void subsets(vector<int>& nums,int sta,vector<vector<int>>& res,vector<int> ans)
{
if(sta>=nums.size())
{
res.push_back(ans);
return;
}
subsets(nums,sta+1,res,ans);
ans.push_back(nums[sta]);
subsets(nums,sta+1,res,ans);
}
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> res;
vector<int> ans;
subsets(nums,0,res,ans);
return res;
}
};


方法2:

位操作

000 -》[]

001 -》[1]

010 -》[2]

.

.

.

111 -》[1,2,3]

class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> res;
int n=nums.size();
int i,j;
for(i=0;i<(1<<n);i++)
{
vector<int> ans;
for(j=0;j<n;j++)
{
if(i&(1<<j))
ans.push_back(nums[j]);
}
res.push_back(ans);
}

return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: