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

LeetCode 二进制中1的个数题解

LeetCode 二进制中1的个数题解

题目描述

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数。

示例

输入:n = 00000000000000000000000000001011
输出:3

解题思路

方法:位运算

思路

  • 使用位运算来解决这个问题。
  • 将 n 与 1 进行与运算,检查最低位是否为 1。
  • 将 n 右移一位,继续检查。
  • 重复上述步骤,直到 n 为 0。

复杂度分析

  • 时间复杂度:O(k),其中 k 是整数的位数。
  • 空间复杂度:O(1)。

代码实现

方法:位运算

# 二进制中1的个数(位运算) def hamming_weight(n): count = 0 while n: count += n & 1 n >>= 1 return count # 测试 def test_hamming_weight(): n = 0b00000000000000000000000000001011 print(hamming_weight(n)) # 输出:3 if __name__ == "__main__": test_hamming_weight()

测试用例

测试用例 1:基本情况

输入:n = 00000000000000000000000000001011
输出:3

总结

二进制中1的个数是一个经典的位运算问题,它可以通过位运算来高效地解决。

位运算的核心思想是:将整数与 1 进行与运算,检查最低位是否为 1,然后将整数右移一位。

掌握位运算的使用方法,对于解决类似的问题非常重要。

http://www.jsqmd.com/news/794097/

相关文章:

  • 终极视频修复指南:使用Untrunc快速恢复损坏的MP4、MOV、M4V文件
  • Obsidian Quiz Generator:用AI从笔记生成交互测验,打造学习闭环
  • 5分钟快速上手:Blender 3MF插件让你轻松实现3D打印模型转换
  • EDA工程师成长与验证技术演进:从算法到芯片的实践闭环
  • AI心智理论评估:VLM意图理解接近人类,但视角采样能力存在瓶颈
  • Edge Impulse实战:TinyML端到端开发平台解析与应用指南
  • 从AMD Ryzen数据误读看硬件市场分析:如何辨别数据信号与噪声
  • SPARQ框架:边缘AI能效优化的三重技术突破
  • LeetCode 汉明距离题解
  • 【AI原生MLOps实战白皮书】:2026奇点大会首发的7大不可复制落地范式,仅限前500位技术决策者获取
  • 物联网标准演进与云平台破局:从M2M到IoT的实战路径
  • 半导体设备再流通:破解成熟制程产能瓶颈与供应链韧性难题
  • 半导体并购新趋势:从规模扩张到价值重构的三大模式解析
  • DevSquad:基于Docker Compose的一站式开发环境解决方案
  • Docker 容器使用指南
  • 栅极后置工艺如何为FDSOI带来颠覆性性能提升?
  • 《Java面试85题图解版(二)》进阶深化中篇:Spring核心 + 数据库进阶
  • 产业公地与紧密设计链:制造业创新效率与供应链韧性的核心
  • turtle学习中的问题
  • 从零部署私有化AI对话框架:igogpt架构解析与实战指南
  • 芯粒技术:从封装协同到UCIe标准,破解芯片设计新范式
  • 从96%本土专利看中国创新转型:成本、策略与全球布局博弈
  • 从CEO到营销技术专家:创业者退休后的身份重构与价值延续
  • 2026 AI技术大会签到暗藏“身份熵阈值”规则,超限即触发人工复核——99.3%参会者不知的3个降熵技巧
  • 400GbE以太网标准:从技术博弈到产业落地的深度解析
  • 二进制喷漆问题:量子与经典优化算法对比
  • Cursor IDE AI用量监控插件开发实战:从需求到开源实现
  • CES 2016行业转向:从酷炫到实用,安全与服务成核心
  • iPhone 5c中国遇冷复盘:产品定价、市场预期与战略博弈的深度解析
  • 福特自动驾驶测试车:机器人如何革新汽车耐久性测试