C++ LeeCode 比特位计数
Posted 小狐狸FM
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ LeeCode 比特位计数相关的知识,希望对你有一定的参考价值。
一、题目
二、代码
class Solution {
public:
vector<int> countBits(int n) {
vector<int> num;
for(int i=0;i<=n;i++){//遍历[0,n],计算每个值对应二进制1的个数
num.push_back(countOne(i));
}
return num;
}
public:
int countOne(int x){//计算当前十进制数转换为二进制后1的个数
if (x==0) return 0;
else if (x==1) return 1;
else if(x/2>0&&x/2<1){//如果当前为最后的商时
return 1;
}else{
return countOne(x/2) + x%2;
}
}
};
以上是关于C++ LeeCode 比特位计数的主要内容,如果未能解决你的问题,请参考以下文章