首页 > 编程语言 >338. 比特位计数 ------ BK算法去一化、动态规划

338. 比特位计数 ------ BK算法去一化、动态规划

时间:2022-11-15 20:13:42浏览次数:45  
标签:338 比特 -- 算法 BK int 计数 ones 一化

给你一个整数 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
 

进阶:

很容易就能实现时间复杂度为 O(n log n) 的解决方案,你可以在线性时间复杂度 O(n) 内用一趟扫描解决此问题吗?
你能不使用任何内置函数解决此问题吗?(如,C++ 中的 __builtin_popcount )

class Solution {
public:
    int countOnes(int x) { // 利用Brian Kernighan算法进行比特位计数
        int ones = 0;
        while (x > 0) {
            x &= (x - 1); // 去1化处理,直到0.
            ones++;
        }
        return ones;
    }

    vector<int> countBits(int n) {
        vector<int> bits(n + 1);
        for (int i = 0; i <= n; i++) {
            bits[i] = countOnes(i); // 对每一个数进行比特位计数
        }
        return bits;
    }
};

 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/counting-bits
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

标签:338,比特,--,算法,BK,int,计数,ones,一化
From: https://www.cnblogs.com/slowlydance2me/p/16893699.html

相关文章

  • 单细胞分析:归一化和回归(八)
    导读现在有了高质量的细胞,首先探索数据并确定任何不需要的变异来源。然后需要对数据进行归一化,计算方差并回归任何对数据有影响的协变量。1.学习目标学会如何执行归一......
  • 背景线性渐变-webkit-linear-gradient
    背景线性渐变:-webkit-linear-gradient语法:background:linear-gradient(起始方向,颜色1,颜色2,...);background:-webkit-linear-gradient(left,red,blue);backgrou......
  • GB2312、GB18030、GBK、UNICODE、B…
    1, 常用字符集分类ASCII及其扩展字符集作用:表语英语及西欧语言。位数:ASCII是用7位表示的,能表示128个字符;其扩展使用8位表示,表示256个字符。范围:ASCII从00到7F,扩展从00到FF。......
  • 为什么要做特征的归一化/标准化?
    作者丨shine-lee谈到featurescaling的必要性,最常用的2个例子可能是:特征间的单位(尺度)可能不同,比如身高和体重,比如摄氏度和华氏度,比如房屋面积和房间数,一个特征的变化范围可......
  • Windows 服务器3389端口限制指南
    1.场景描述企业针对服务器安全的配置策略一方面通过操作系统的补丁和密码安全策略的要求规范基础的安全配置,但是这种方式无法解决多人使用同一账号导致的安全问题,事后也不便......
  • 推荐系统算法:特征工程(归一化、离散化、各类型特征处理) ----- 机器学习
                             ......
  • 单细胞分析:PCA和归一化理论(七)
    1.学习目标讨论为什么归一化计数对于细胞之间的准确比较是必要的解释如何通过主成分分析(PCA)评估细胞之间的相似性在获得高质量单细胞后,scRNA-seq分析工作流程的......
  • 解决中文拼接在url后的乱码问题--gbk 在url上的编码
    主要是URLEncoder.encode(temp,"UTF-8");URLDecoder.decode(temp,"UTF-8");publicstaticvoidmain(String[]args)throwsUnsupportedEncodin......
  • 添加磁盘组存储ocrbk报错PROT-30、PROC-50
    问题描述:添加磁盘组存储ocrbk报错PROT-30、PROC-50,如下所示:数据库:oracle11.2.0.464位系统:centos7.964位环境:rac(双节点)+dg异常现象:[root@hisdb1bin]#pwd/u01/app/1......
  • 数据处理归一化
    refpython笔记4:数据归一化(0,1),归至(-1,1);数据预处理:标准化,归一化,正则化一般来说转化到[0,1]\[\frac{x-x_{min}}{x_{max}-x_{min}}\]或者[-1,1]\[2\frac{x-x_{min}}{x......