leetcode 338. 比特位计数

文章目录

338. 比特位计数

链接

暴力算法

java 复制代码
class Solution {

    private int count(int n) {
        int res = 0;
        if (n == 0) {
            return 0;
        }
        for (int i = 0; i < 32; i++) {
            res += ((n >> i) & 1);
        }
        return res;
    }

    public int[] countBits(int n) {
        int[] ans = new int[n+1];
        for (int i = 0; i <= n; i++) {
            ans[i] = count(i);
        }
        return ans;
    }
}

存储已经计算的值

java 复制代码
class Solution {

    
    public int[] countBits(int n) {
        int[] ans = new int[n+1];
        for (int i = 0; i <= n; i++) {
            ans[i] = ans[i >> 1] + (i & 1);
        }
        return ans;
    }
}
相关推荐
不忘不弃4 分钟前
指针元素的使用
算法
he___H6 分钟前
滑动窗口一题
java·数据结构·算法·滑动窗口
AI科技星7 分钟前
统一场论质量定义方程:数学验证与应用分析
开发语言·数据结构·经验分享·线性代数·算法
ULTRA??9 分钟前
KD-Tree的查询原理
python·算法
jianfeng_zhu28 分钟前
不带头节点的链式存储实现链栈
数据结构·算法
lightqjx30 分钟前
【算法】双指针
c++·算法·leetcode·双指针
历程里程碑33 分钟前
C++ 7vector:动态数组的终极指南
java·c语言·开发语言·数据结构·c++·算法
mit6.82435 分钟前
get+二分|数位dp
算法
sin_hielo39 分钟前
leetcode 2147
数据结构·算法·leetcode
萌>__<新1 小时前
力扣打卡每日一题——缺失的第一个正数
数据结构·算法·leetcode