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

力扣刷题(第四十三天)

灵感来源 

- 保持更新,努力学习

- 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.xdnf.cn/news/10163.html

相关文章:

  • AI书签管理工具开发全记录(七):页面编写与接口对接
  • 混沌映射(Chaotic Map)
  • MAC上怎么进入隐藏目录
  • leetcode216.组合总和III:回溯算法中多条件约束下的状态管理
  • 力扣HOT100之动态规划:300. 最长递增子序列
  • 【EF Core】 EF Core 批量操作的进化之路——从传统变更跟踪到无跟踪更新
  • 2024 CKA模拟系统制作 | Step-By-Step | 19、题目搭建-升级集群
  • PHP下实现RSA的加密,解密,加签和验签
  • 【leetcode】02.07. 链表相交
  • 大模型-attention汇总解析之-MLA
  • 循序渐进PersistentVolumes与PersistentVolumeClaim
  • shell管道笔记
  • Oralce RAC DRM详解
  • 【征求意见】四川省大数据发展研究会关于对《数据资源建设费用测算标准》团体标准征求意见的通知
  • Python_day40
  • Python常见的面试题
  • vueflow
  • 【仿生机器人】需求案例
  • EWM108-GN06B系列BDS单北斗卫星定位模块产品简介
  • [IMX] 10.串行外围设备接口 - SPI
  • win32相关(创建线程)
  • 多线程(3)
  • MySQL中怎么看是否走了索引
  • 数据库中求最小函数依赖集-最后附解题过程
  • EMQX服务
  • DALI DT6与DALI DT8介绍
  • PlankAssembly 笔记 DeepWiki 正交视图三维重建
  • redis缓存与数据库协调读写机制设计
  • JAVA 集合进阶 泛型类、泛型方法、泛型接口
  • 【算法训练营Day03】链表part1