您的位置:首页 > 其它

Leetcode 78 Subsets

2018-01-18 10:51 405 查看

Leetcode 78 Subsets

class Solution {
public:
vector<vector<int>> set;
vector<vector<int>> subsets(vector<int>& nums) {
//bit manupulation 000 001 010 011 100 101 110 111
int size = nums.size();
for (int i = 0;i < 1 << size;++i) {
vector<int> result;
for (int j = 0;j < size; ++j) {
if (i & 1 << j)//先左移位然后再与
result.push_back(nums[j]);
}
set.push_back(result);
}
return set;
}
};

class Solution2 {
public:
vector<vector<int>> set;
vector<vector<int>> subsets(vector<int>& nums) {
vector<int> path;
set.push_back(path);
helper(0,path,nums);
return set;
}
//dfs
void helper(int pos,vector<int>& path,vector<int>& nums) {

if (pos == nums.size())
return;

for (int i = pos;i < nums.size();++i) {
path.push_back(nums[i]);
set.push_back(path);//important
helper(i+1,path,nums);
path.pop_back();
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode