class Solution {
public:
vector<int> t;
vector<vector<int>> ans;
vector<vector<int>> subsets(vector<int>& nums) {
int n = nums.size();
for (int mask = 0; mask < (1 << n); ++mask) {
t.clear();
for (int i = 0; i < n; ++i) {
if (mask & (1 << i)) //如果mask的第i位有1
{
t.push_back(nums[i]);
}
}
ans.push_back(t);
}
return ans;
}
};
这里面有个 1<<n这样的说法,就是第n位是1的一个二进制数,实际上就是想表达,mask<2的n次方 这样一个意思。