题目:
解题
还算简单的思路,只要注意a[i]有可能会溢出,用a.at(i)避免溢出的情况;
还有一些string的api需要多用记忆一下
前 n 个数字二进制中 1 的个数
class Solution {
public:
vector<int> countBits(int n) {
vector<int> res;
for(int i = 0; i<=n; i++)
{
//对每一个i进行遍历查找
eachBits(i, res);
}
return res;
}
void eachBits(int x, vector<int>& res)
{
int count = 0;
//每一个数x&x-1 有几个1
while(x)
{
x = x&(x-1);
count++;
}
res.push_back(count);
}
};