难度:中等。
标签:位运算,数组,回溯算法。
用回溯算法来做。
正确解法:
class Solution {
vector<vector<int>> result;
void backtrace(vector<int> vec, int begin, vector<int> nums){
if(vec.size() == nums.size()){
return;
}
for(int i = begin; i < nums.size(); i++){
vec.emplace_back(nums[i]);
result.emplace_back(vec);
backtrace(vec, i + 1, nums);
vec.pop_back();
}
}
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<int> vec;
result.emplace_back(vec);
backtrace(vec, 0, nums);
return result;
}
};
结果: