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;
}

猜你喜欢

转载自www.cnblogs.com/chinwongleung/p/11674404.html