给定一个非负整数 num,对 0 ≤ i ≤ num 范围内的每个整数 i,计算其二进制表示中 1 的个数,并以数组形式返回结果。
示例:
当 num = 5 时,应返回 [0,1,1,2,1,2]。
利用位运算统计每个数的比特位中 1 的个数。
vector<int> countBits(int num)
{
vector <int> ret;
for (int i = 0; i <= num; i++)
{
int x = i, count = 0;
while (x)
{
if (x & 1)
{
count++;
}
x >>= 1;
}
ret.push_back(count);
}
return ret;
}