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

LeetCode|Day26|191. 位 1 的个数|Python刷题笔记

LeetCode|Day26|191. 位 1 的个数|Python刷题笔记

🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>


📌 题目简介

题号:191. 位 1 的个数
难度:简单
题目链接:点击跳转


🧾 题目描述

编写一个函数,接收一个无符号整数 n,返回其二进制表示中 "1" 的个数。
这个问题通常被称为 Hamming Weight(汉明重量)。

示例 1:

输入:n = 11 (二进制为 00000000000000000000000000001011)
输出:3
解释:输入中有三个二进制位为 '1'。

示例 2:

输入:n = 128 (二进制为 00000000000000000000000010000000)
输出:1

💡 解法:位运算逐位统计

class Solution:def hammingWeight(self, n: int) -> int:count = 0while n:count += n & 1  # 取出最低位是否为1n >>= 1         # 右移一位,相当于整除2return count

🧠 我的理解

  • 利用按位与运算 n & 1 判断最低位是否为 1
  • 每次检查完后,将 n 右移一位,继续判断下一位;
  • 不断累加直到 n 变为 0。

📌 基础语法复习:

  • n & 1:按位与,判断最低位是否为 1;
  • n >>= 1:将整数右移 1 位,相当于除以 2;
  • while n::当 n 不为 0 时循环;
  • 这种逐位遍历的方法是处理位运算问题的重要技巧。

📌 返回总目录:点我回目录

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

相关文章:

  • hot100-每日温度
  • MyBatis-Plus 通用 Service
  • 睡眠函数 Sleep() C语言
  • 缓存一致性:从单核到异构多核的演进之路
  • [RPA] 日期时间练习案例
  • 免费 PDF 转 Word 工具:无水印 / 支持批量转换,本地运行更安全【附工具下载】
  • Python day25
  • 数字化转型 - 企业数字化建设的几点思考
  • Redis的下载和安装(Linux)
  • 学习随笔录
  • SSH连接失败排查与解决教程: Connection refused
  • 不正确的 clone() 方法实现与修复方案
  • java--JDBC
  • 【Canvas技法】绘制正N角星
  • 【数据结构】二叉树初阶详解(二):实现逻辑与代码拆解(超详版)
  • 计算机中的单位(详细易懂)
  • CH341 Linux驱动 没有 /dev/ttyCH341USB0
  • MySQL 基本查询
  • 【408二轮强化】数据结构——线性表
  • 最优估计准则与方法(4)最小二乘估计(LS)_学习笔记
  • 最优估计准则与方法(5)加权最小二乘估计(WLS)_学习笔记
  • 尝试几道算法题,提升python编程思维
  • C语言中:形参与实参的那些事
  • 1. Qt多线程开发
  • PYTHON从入门到实践-15数据可视化
  • 方案C,version2
  • 主要分布在腹侧海马体(vHPC)CA1区域(vCA1)的混合调谐细胞(mixed-tuning cells)对NLP中的深层语义分析的积极影响和启示
  • 深度解析 noisereduce:开源音频降噪库实践
  • C 与 C++ 的区别:发展、特性及优缺点详解
  • 对比JS“上下文”与“作用域”