lc:338练习的一点思考

news/2025/11/14 15:04:58/文章来源:https://www.cnblogs.com/honyide/p/19222117

 

public int[] CountBits(int n) {
int[] res = new int[n + 1];
for (int i = 0; i <= n; i++)
{
res[i] = CountOnesWithBitOperation(i);
}
return res;
}
public int CountOnesWithBitOperation(int n)
{
int count = 0;
while (n != 0)
{
n &= (n - 1); // 消除最右边的1
count++;
}
return count;
}

这个算法的时间复杂度我n log n,回顾算法的时间复杂度如何计算,同时记忆这个二进制1数量的计算方法


注意原来的算法实现,CountOnesWithBitOperation中采用i与i-1的与运算消去右端1,这个步骤似乎可以利用到CountBits方法中@_@

关键在于理解 i & (i - 1) 这个位运算操作:
该操作可以消除数字 i 的二进制表示中最右边的 1
因此 res[i] = res[i & (i - 1)] + 1 表示:当前数字的 1 的个数 = 消除最右边 1 后的数字的 1 的个数 + 1

相邻数字或有特定关系的数字之间,比特位数往往存在递推关系

使用动态规划的思想优化后的实现:
public class Solution {
public int[] CountBits(int n) {
int[] res = new int[n + 1];
for (int i = 1; i <= n; i++) {
// i比(i&(i-1))多一个1
res[i] = res[i & (i - 1)] + 1;
}
return res;
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/965416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东商品评论接口深度逆向:从加密参数破解到情感倾向分析

京东商品评论接口因涉及用户行为数据,其反爬机制比商品详情、搜索接口更为严格,不仅采用多层参数加密,还引入了基于用户行为轨迹的动态验证。本文将突破传统的单一接口模拟思路,通过逆向评论加载的完整链路,实现评…

JSC2023 Max Degree Sum

并查集+贪心维护边权超小的动态 MST显然有一个暴力是按 \([u_i\leq k]+[v_i\leq k]\) 为边权跑最大生成树,但是看起来不是很好维护的样子。 发现我们只需要考虑当前边权为 \(1\) 或 \(2\) 的边。于是最多我们只需要考…

还在求Sora2邀请码?我已经用Sora2 API批量生成无水印视频了!(附免费去水印+Api调用教程)

还记得Sora 2刚发布时,它生成的视频带给你的那种冲击感吗? “这真的是AI生成的?”“太逼真了吧!”“我还以为是真的!” sora2这次带来的画面,已经逼真到肉眼难以分辨真假。有些视频一旦去掉水印,很多人根本看不…

[LangChian] 18. 自动维护聊天记录

上一节我们体验了“手动维护聊天记录”,每次都要:把用户发言添加到 history 把模型输出添加到 history 每轮都手动调用 getMessages() 构造上下文await history.addMessage(new HumanMessage(input)); await history…

2025年燃生物质有机热载体锅炉生产厂家权威推荐榜单:燃生物质热水锅炉/生物质专用锅炉/生物质热水锅炉源头厂家精选

在“双碳”目标持续推进的背景下,燃生物质有机热载体锅炉凭借其清洁、可再生、低碳排放的特性,正成为工业供热领域的重要选择。 根据行业报告数据,2025年生物质能在中国可再生能源消费中的占比预计将稳步提升,其中…

二进制掩码规律

& 0x1 = & 0b1 → 保留 1 位 (范围: 0-1) & 0x3 = & 0b11 → 保留 2 位 (范围: 0-3) & 0x7 = & 0b111 → 保留 3 位 (范围: 0-7) & 0xF = & 0b1111 …

jenkins构建生成docker镜像

pipeline {agent anyenvironment {CODE_DIR = "/jenkins_data/springboot_test"DATE = new Date().format(YYYYMMddHHmmss)TAG = "${DATE}"IMAGE_NAME = springtestIMAGE_NAME_ALIYUN = "reg…

2025年复合风管板权威推荐榜单:铝箔复合风管/酚醛复合风管/彩钢酚醛复合风管源头厂家精选

复合风管板作为现代建筑通风系统中不可或缺的核心材料,其市场需求正随着绿色建筑标准的提升和建筑节能要求的加强而持续增长。本文将基于详实的行业数据,为您推荐2025年度在复合风管板领域表现卓越的Top 3制造厂,通…

在线文档大全

go文档 go高级编程 go中文文档 go框架gin go-zero 开源项目地址 https://github.com/Mikaelemmmm/go-zero-looklook goframeweb3.0

AI大事记12:Transformer 架构——重塑 NLP 的革命性技能(下)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

记一次多线程插入或者更新数据库表操作优化过程

背景:有个数百万的数据,需要尽快入库,使用了多线程处理,先查询数据库是否存在,存在则更新;否则插入; 问题:数据库相同key的数据,有时候插入多条。 解决办法:String lockKey =getLockKey(t); //根据md5算法,…

2025年进口干冰机代理工厂权威推荐榜单:干冰清洗机/干冰制造机源头厂家精选

工业干冰机作为现代清洁与表面处理领域的重要设备,其市场需求正随着制造业升级和环保要求的提升而持续增长。本文将基于详实的行业视角,为您推荐2025年度在进口干冰机代理领域表现卓越的Top 3服务商,通过客观分析和…

接口调试利器,Postman免安装,免登陆 - 详解

接口调试利器,Postman免安装,免登陆 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

微算法科技(NASDAQ MLGO)在委托权益证明DPoS主链上引入PoW轻节点验证,提升抗量子攻击能力

随着量子计算技术的飞速发展,传统区块链的加密算法面临着前所未有的威胁。量子计算机强大的计算能力有可能在短时间内破解现有的加密机制,导致区块链的安全性遭受重创。委托权益证明(DPoS)作为一种高效的共识机制,…

字的bi-gram可能是个馊主意

续之前的贴子,我们有了部精修词典,二至六字词共169872个。 foreach 词,用字的2-gram去检查首选是否正确,结果很差,可在〔这里〕下载 123094个不一样的。部分结果:䴔䴖 交警 𫘝𫘨 抉剔 吖嗪 阿嗪 腌菜 言采 腌…

常见的几种硬盘接口类型

常见的几种硬盘接口类型IDE 接口:40 个针脚,通过 PATA 协议控制数据传输理论最大传输速率 133MB/s,实际更低,已经被淘汰了。SATA 接口:22 个针脚,15 针用于供电,7 针用于数据传输。通过AHCI 协议控制数据传输,…

2025年w70钨铜棒制造企业权威推荐榜单:钨铜导电块/钨铜块/93钨合金源头厂家精选

在高端制造业快速发展的背景下,W70钨铜棒作为关键功能材料,其市场需求持续增长。根据QYResearch最新报告显示,全球钨铜合金市场规模预计将在2025年达到新高度,年复合增长率保持在5.8% 的稳定水平。 W70钨铜棒凭借其…

嵌入式系统profinet转devicenet固件与硬件接口的连接案例

本案例适用于智能仓储物流系统,西门子S7-1200PLC通过Profinet连接DeviceNet主站网关,网关下联DeviceNet从站型AGV(自动导引车)驱动模块和扫码枪,实现AGV的路径控制与货物信息采集。核心需求是基于网关的嵌入式固件…

Proxmox VE9.0优化-功耗切换到智能模式

本文介绍了如何通过脚本切换Proxmox VE9.0主机功耗模式模式介绍 PVE9.0目前支持下面几种模式,初始安装默认是performance。performance (高性能, 频率接近最大值。PVE默认/推荐) powersave (低功耗, 频率接近最低值) …

KMPlayer下载教程(2025新版)——全功能安装配置与使用经验详解

前言: 在多媒体工具领域,KMPlayer 一直是一款被广泛使用的视频播放器。 无论是从兼容性、解码能力还是自由性来看,它都在同类播放器中有着不错的口碑。尤其是面对如今格式多样化、高码率视频普及的情况,一个性能稳…