动态规划(5)---Leetcode338.比特位计数

题目

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

分析

通常动态规划的做题顺序,先确定dp数组dp[i],然后确定确定递推公式,再dp数组初始化,最后确定递推顺序。

题解

java 复制代码
class Solution {
    public int[] countBits(int n) {
        int[] bits = new int[n + 1];
        int highBit = 0;
        for (int i = 1; i <= n; i++) {
            if ((i & (i - 1)) == 0) {
                highBit = i;
            }
            bits[i] = bits[i - highBit] + 1;
        }
        return bits;
    }
}
相关推荐
过往入尘土27 分钟前
服务端与客户端的简单链接
人工智能·python·算法·pycharm·大模型
zycoder.32 分钟前
力扣面试经典150题day1第一题(lc88),第二题(lc27)
算法·leetcode·面试
蒙奇D索大38 分钟前
【数据结构】考研数据结构核心考点:二叉排序树(BST)全方位详解与代码实现
数据结构·笔记·学习·考研·算法·改行学it
智驱力人工智能1 小时前
工厂抽烟检测系统 智能化安全管控新方案 加油站吸烟检测技术 吸烟行为智能监测
人工智能·算法·安全·边缘计算·抽烟检测算法·工厂抽烟检测系统·吸烟监测
程序员爱钓鱼2 小时前
Go语言实战案例——进阶与部署篇:编写Makefile自动构建Go项目
后端·算法·go
_Power_Y2 小时前
Java面试常用算法api速刷
java·算法·面试
艾醒(AiXing-w)2 小时前
大模型面试题剖析:模型微调中冷启动与热启动的概念、阶段与实例解析
人工智能·深度学习·算法·语言模型·自然语言处理
天选之女wow3 小时前
【代码随想录算法训练营——Day32】动态规划——509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯
算法·leetcode·动态规划
红衣小蛇妖3 小时前
LeetCode-704-二分查找
java·算法·leetcode·职场和发展
rongqing20193 小时前
问题记录:一个简单的字符串正则匹配算法引发的 CPU 告警
算法