当前位置: 首页 > news >正文

lc:338练习的一点思考

 

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.gsyq.cn/news/49542.html

相关文章:

  • 京东商品评论接口深度逆向:从加密参数破解到情感倾向分析
  • jenkins构建生成docker镜像
  • 2025年复合风管板权威推荐榜单:铝箔复合风管/酚醛复合风管/彩钢酚醛复合风管源头厂家精选
  • 微算法科技(NASDAQ MLGO)在委托权益证明DPoS主链上引入PoW轻节点验证,提升抗量子攻击能力
  • 常见的几种硬盘接口类型
  • 10.7万条轨迹+4大机器人构型!RoboMIND开源数据集破解机器人通用操作难题 | 附一键复现指南
  • 工业网络通信中profinet转devicenet基于总线协议转换的网关连接技术研究
  • 2025 年钢结构源头厂家最新推荐排行榜:聚焦全产业链服务与核心产能,七大实力企业权威甄选
  • hgg
  • 基于.NET开发STEP三维模型浏览器
  • Shape数据入到PG库中存在乱码的
  • 手机远程电脑挂机游戏如何操作?ToDesk免费新功能超好用!
  • 2025 年 11 月环氧板厂家推荐排行榜,环氧板加工,FR-4玻纤板,云母板,绝缘材料厂家专业实力与市场口碑深度解析
  • Terraform Kafka 提供者文档 - 教程
  • 2025年电脑自动裁剪机供货商权威推荐榜单:卷布装置/电脑绗缝机/高速电脑裥棉机源头厂家精选
  • 20232302 2025-2026-1《网络与系统攻防技术》实验五实验报告
  • 2025年11月有感
  • 安徽知名的商标注册:2025年专业服务机构权威评测
  • 小马算力暖冬特惠营:百万算力金 + 万元京东卡,11.12
  • 2025年泳池篷房实力厂家权威推荐榜单:篮球训练篷房/篮球场篷房/游泳馆篷房源头厂家精选
  • 什么是CRM系统:CRM系统定义、功能与2025年9款最佳CRM系统推荐
  • Burp Suite Professional 2025.11 发布,新增功能简介
  • 数据库主备与MHA架构对比
  • 深入解析:高可用架构实战:SpringBoot+MongoDB构建AI原生应用
  • 2025年五个女博士品牌可信度分析:深度拆解科研底色与市场真实反馈
  • 2025年五个女博士品牌可信度分析:深度拆解科研数据与真实市场反馈
  • SonarQube Scanner CLI 下载踩坑记
  • 2025年北京搬家公司联系电话推荐:吉时达搬家准时守约口碑佳
  • 用 CloudFront + Lambda@Edge 实现“可回滚、可观测”的灰度发布
  • 2025年企业人工智能解决方案最新top5推荐:智能体平台全场景覆盖,助力企业数字化转型