题目:
![在这里插入图片描述](https://img-blog.csdnimg.cn/42a2c1ca421141c2a2ab9c85e68fcfda.png)
解题
还算简单的思路,只要注意a[i]有可能会溢出,用a.at(i)避免溢出的情况;
还有一些string的api需要多用记忆一下
![在这里插入图片描述](https://img-blog.csdnimg.cn/eb13976333cf4ed8b22baa9a5940f30f.png)
前 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);
}
};