大牛过来看道题# JobHunting - 待字闺中
a*r
1 楼
找subsets的题,看到一个大牛的code:
vector> subsets(vector& nums) {
sort (nums.begin(), nums.end());
int elem_num = nums.size();
int subset_num = pow (2, elem_num);
vector> subset_set (subset_num, vector());
for (int i = 0; i < elem_num; i++)
for (int j = 0; j < subset_num; j++)
if ((j >> i) & 1)
subset_set[j].push_back (nums[i]);
return subset_set;
}
在这里,if ((j >> i) & 1) 怎么理解?
大牛能不能举个例子解释一下这个条件?跪谢了。
vector
sort (nums.begin(), nums.end());
int elem_num = nums.size();
int subset_num = pow (2, elem_num);
vector
for (int i = 0; i < elem_num; i++)
for (int j = 0; j < subset_num; j++)
if ((j >> i) & 1)
subset_set[j].push_back (nums[i]);
return subset_set;
}
在这里,if ((j >> i) & 1) 怎么理解?
大牛能不能举个例子解释一下这个条件?跪谢了。