定个小目标之刷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)全球极客挚爱的技术成长平台

相关推荐
core5128 分钟前
CatBoost:自带“翻译官”的算法专家
算法·boost·catboost
YGGP19 分钟前
【Golang】LeetCode 139. 单词拆分
算法·leetcode
wuguan_22 分钟前
C#递推算法
算法·c#·递推算法
多米Domi01131 分钟前
0x3f第14天 最长公共子序列
算法·深度优先
spssau34 分钟前
正交试验设计全解析:从正交表生成到极差与方差分析
数据库·算法·机器学习
minhuan1 小时前
大模型应用:不减性能只减负担:大模型稀疏化技术全景与实践.36
大数据·人工智能·算法
爱学大树锯1 小时前
592 · 查找和替换模式
算法
爱学大树锯1 小时前
775 · 回文对
算法
girl-07261 小时前
2025.12.26代码分析
数据结构·算法
大罗辑1 小时前
2026软考备考刷题:软件设计师经典100题(5)含详细解析
算法·软考·软件设计师·2026软考·软设备考