定个小目标之刷LeetCode热题(41)

338. 比特位计数

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

今天看一下这道简单题,主要考查位运算,代码如下

java 复制代码
class Solution {
    public int[] countBits(int n) {
        int[] bits = new int[n + 1];
        int heightBit = 0;
        for (int i = 1; i <= n; i++) {
            if ((i & (i - 1)) == 0) {
                heightBit = i;
            }
            bits[i] = bits[i - heightBit] + 1;
        }
        return bits;
    }
}

题目链接:题单 - 力扣(LeetCode)全球极客挚爱的技术成长平台

相关推荐
资深web全栈开发1 分钟前
LeetCode 3432. 统计元素和差值为偶数的分区方案数
算法·leetcode
黎茗Dawn10 分钟前
DDPM-KL 散度与 L2 损失
人工智能·算法·机器学习
wearegogog12312 分钟前
DEA模型MATLAB实现(CCR、BCC、超效率)
开发语言·算法·matlab
业精于勤的牙18 分钟前
浅谈:快递物流与算法的相关性(四)
算法
ghie909024 分钟前
MATLAB自适应子空间辨识工具箱
数据结构·算法·matlab
过河卒_zh156676624 分钟前
算法备案最新通知:26年1月批备案号发放名单已锁定,发放前的复审抽审已开始
人工智能·算法·aigc·算法备案
cici1587426 分钟前
基于反向传播算法实现手写数字识别的MATLAB实现
开发语言·算法·matlab
老欧学视觉26 分钟前
0013机器学习聚类算法(无监督算法)
算法·机器学习·聚类
小鱼小鱼.oO29 分钟前
C++ 算法基础知识
c++·算法·哈希算法
yong99901 小时前
LSD直线提取算法 MATLAB
开发语言·算法·matlab