78 leetCode 位运算解法

按照自己的理解题目,数组内所有的组合;假如[1,2,3,4]看成1111到0000里面的排列组合,取位运算。
vector<vector > subsets(vector&nums)
{
int S = nums.size();
int N = 1 << S;
vector<vector > res;
for (int i = 0; i < N; i++)
{
vector v;
for (int j = 0; j < S; ++j)
{
if (i &(1 << j))//这个不是j变化
v.push_back(nums[j]);
}
res.push_back(v);
}
return res;
}

posted @ 2019-10-14 21:55  冲破天际  阅读(81)  评论(0编辑  收藏  举报