比特位计数(C++)

简介: 比特位计数(C++)

比特位计数

给你一个整数 n ,对于0 <= i <= n中的每个 i ,计算其二进制表示中 1的个数 ,返回一个长度为 n + 1的数组ans作为答案。

示例 1:

输入:n = 2
输出:[0,1,1]
解释:
0 --> 0
1 --> 1
2 --> 10

示例 2:

输入:n = 5
输出:[0,1,1,2,1,2]
解释:
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101

提示:

  • 0 <= n <= 105

我的代码:

class Solution {
public:
// 对于0那么二进制就是0
// 对于奇数那么二进制就是比它小一位的+1
// 对于偶数那么他的1就是跟/2之后的结果一样
    vector<int> countBits(int n) {
        vector<int> res(n + 1);
        res[0] = 0;
        for (int i = 1; i <= n; ++ i)
        {
            if (i % 2 == 1) res[i] = res[i - 1] + 1;
            else res[i] = res[i / 2];
        }
        return res;
    }
};


相关文章
|
数据挖掘 C++
C++中的科学计数法
C++中的科学计数法
2298 0
|
C++
【C++从0到王者】第十一站:引用计数与写时拷贝
【C++从0到王者】第十一站:引用计数与写时拷贝
104 0
|
机器学习/深度学习 算法 测试技术
C++算法:有向图计数优化版原理及实现
C++算法:有向图计数优化版原理及实现
|
算法 测试技术 C++
C++算法:有向图访问计数的原理及实现
C++算法:有向图访问计数的原理及实现
|
C++ Python
LeetCode每日一题题解:811. 子域名访问计数-题解-python && C++源代码
LeetCode每日一题题解:811. 子域名访问计数-题解-python && C++源代码
|
8月前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
4月前
|
人工智能 机器人 编译器
c++模板初阶----函数模板与类模板
class 类模板名private://类内成员声明class Apublic:A(T val):a(val){}private:T a;return 0;运行结果:注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。return 0;
112 0
|
4月前
|
存储 编译器 程序员
c++的类(附含explicit关键字,友元,内部类)
本文介绍了C++中类的核心概念与用法,涵盖封装、继承、多态三大特性。重点讲解了类的定义(`class`与`struct`)、访问限定符(`private`、`public`、`protected`)、类的作用域及成员函数的声明与定义分离。同时深入探讨了类的大小计算、`this`指针、默认成员函数(构造函数、析构函数、拷贝构造、赋值重载)以及运算符重载等内容。 文章还详细分析了`explicit`关键字的作用、静态成员(变量与函数)、友元(友元函数与友元类)的概念及其使用场景,并简要介绍了内部类的特性。
185 0