您的位置:首页 > 其它

LeetCode 78. Subsets

2016-11-20 10:51 381 查看

描述

给出一个数组,求出所有的子数组

解决

高中的排列组合问题,记录数组的长度为n,则可以取的组合为C(n, 0), C(n, 1), C(n,2)直到C(n,n),又因为
C(n, 0) + C(n, 1) + ....+C(n, n) = 2 ^ n
,即判断每个数是否取出来

class Solution {
public:
vector<vector<int>> res;
vector<int> temp;
int length;
vector<vector<int>> subsets(vector<int>& nums) {
length = nums.size();
help(0, nums);
return res;
}
void help(int pos, vector<int> &nums)
{
if (pos == length)
{
res.push_back(temp);
return ;
}
temp.push_back(nums[pos]);
help(pos + 1, nums);
temp.pop_back();
help(pos + 1, nums);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode