leetcode 338. 比特位计数

2023.12.28

简单的动态规划问题。 首先明确:当前为奇数时,比特数 = 当前数除以2的比特数;当前数为偶数时,比特数 = 当前数-1的比特数加上一

使用动态规划循序遍历即可,java代码如下:

java 复制代码
class Solution {
    public int[] countBits(int n) {
        if(n == 0) return new int[] {0};

        int[] dp = new int[n+1];
        dp[0] = 0;
        dp[1] = 1;
        for(int i=2; i<=n; i++){
            //偶数
            if(i % 2 == 0){
                dp[i] = dp[i/2];
            }
            //奇数
            else{
                dp[i] = dp[i-1] + 1;
            }
        }
        return dp;
    }
}
相关推荐
近津薪荼43 分钟前
优选算法——双指针4(单调性)
c++·学习·算法
IUGEI2 小时前
从原理到落地:DAG在大数据SLA中的应用
java·大数据·数据结构·后端·算法
云深麋鹿2 小时前
五.排序笔记
c语言·数据结构·算法·排序算法
spcier8 小时前
图论拓扑排序-Kahn 算法
算法·图论
知星小度S8 小时前
动态规划(一)——思想入门
算法·动态规划
ysa0510308 小时前
动态规划-逆向
c++·笔记·算法
燃于AC之乐8 小时前
我的算法修炼之路--7—— 手撕多重背包、贪心+差分,DFS,从数学建模到路径DP
c++·算法·数学建模·深度优先·动态规划(多重背包)·贪心 + 差分
闻缺陷则喜何志丹8 小时前
【BFS 动态规划】P12382 [蓝桥杯 2023 省 Python B] 树上选点|普及+
c++·蓝桥杯·动态规划·宽度优先·洛谷
Whisper_Sy8 小时前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 网络状态实现
android·java·开发语言·javascript·网络·flutter·php
chinesegf8 小时前
文本嵌入模型的比较(一)
人工智能·算法·机器学习