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

力扣刷题(第四十三天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

解题思路

1. 逐位检查法:通过右移操作逐位检查每一位是否为1,统计计数

2. 位运算优化法:利用  n & (n-1)  操作消除最低位的1,减少循环次数

3. 内置函数法(仅适用于部分语言):直接使用语言内置的位计数函数

def hammingWeight(n: int) -> int:
    count = 0
    while n:
        # 消除最低位的1
        n &= n - 1
        count += 1
    return count

逐行解释

def hammingWeight(n: int) -> int:
    # 定义计数器,用于统计二进制中1的个数
    count = 0
    # 当n不为0时,循环继续(因为当所有1都被消除后,n会变为0)
    while n:
        # 核心操作:n & (n-1) 会消除n的二进制表示中最低位的1
        # 例如:n=1010(二进制),n-1=1001,两者按位与结果为1000,最低位的1被消除
        n &= n - 1
        # 每消除一个1,计数器加1
        count += 1
    # 最终返回1的个数
    return count

http://www.lryc.cn/news/2394531.html

相关文章:

  • Centos环境下安装/重装MySQL完整教程
  • 【Linux】环境变量完全解析
  • 【Java】mybatis-plus乐观锁-基本使用
  • 力扣每日一题——找到离给定两个节点最近的节点
  • 机器学习与深度学习03-逻辑回归01
  • 卷积神经网络(CNN)入门学习笔记
  • 【优笔】基于STM32的多模态智能门禁系统
  • Metasploit工具使用详解(上)丨小白WEB安全入门笔记
  • Femap许可证与网络安全策略
  • VLAN的作用和原理
  • 深入探讨集合与数组转换方法
  • 让大模型看得见自己的推理 — KnowTrace结构化知识追踪
  • 【HarmonyOS 5应用架构详解】深入理解应用程序包与多Module设计机制
  • 【Oracle】DCL语言
  • MySQL强化关键_017_索引
  • stm32——SPI协议
  • Linux 下如何查看进程的资源限制信息?
  • 【备忘】php命令行异步执行超长时间任务
  • 对于ARM开发各种手册的分类
  • java开发中#和$的区别
  • 在 RK3588 上通过 VSCode 远程开发配置指南
  • OpenHarmony标准系统-HDF框架之音频驱动开发
  • HTML Day03
  • 篇章六 数据结构——链表(二)
  • Python60日基础学习打卡Day39
  • 吴恩达MCP课程(3):mcp_chatbot
  • MySQL访问控制与账号管理:原理、技术与最佳实践
  • AWS 创建VPC 并且添加权限控制
  • langchain学习 01
  • 【清晰教程】查看和修改Git配置情况