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;
    }
}
相关推荐
Hui Baby1 分钟前
GIS导航
java
xunyan62342 分钟前
面向对象(下)-接口应用:代理模式 && 工厂模式
android·java·学习
Swift社区3 分钟前
LeetCode 448 - 找到所有数组中消失的数字
算法·leetcode·职场和发展
青云交3 分钟前
Java 大视界 -- Java 大数据在智能教育学习成果评估体系完善与教育质量提升中的深度应用(434)
java·hive·spark·智能教育·学习成果评估·教育质量提升·实时评估
GEM的左耳返4 分钟前
互联网大厂Java求职面试题解析与实战指导:涵盖核心技术栈与业务场景
java·数据库·spring boot·安全·微服务·消息队列·面试题
毕设源码-邱学长7 分钟前
【开题答辩全过程】以 高校就业分析与可视化系统为例,包含答辩的问题和答案
java·eclipse
OKkankan10 分钟前
二叉搜索树
c语言·数据结构·c++·算法
橙序员小站11 分钟前
Springboot3.0并不能拯救你的屎山
java·后端·架构
憧憬少12 分钟前
通过切换Service实现类来切换看板数据来源
java·spring boot
YJlio13 分钟前
Active Directory 工具学习笔记(10.13):AdRestore——把误删“拉回现场”的最快姿势
java·笔记·学习