C++ LeeCode 比特位计数

Posted 梦之海岛

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 比特位计数的主要内容,如果未能解决你的问题,请参考以下文章

比特位计数--C++ bitset 用法

LeetCode338. 比特位计数

java刷题--338 比特位计数

java刷题--338 比特位计数

java刷题--338 比特位计数

[动态规划]338. 比特位计数