当前位置: 首页 > 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.xdnf.cn/news/1188289.html

相关文章:

  • 像素、视野、光源,都有哪些因素影响测量精度?
  • DSP在CCS中实现双核在线仿真调试及下载的方法(以TMS320F28x为例)
  • 【Redis】 Redis 基础命令和原理
  • 详解力扣高频SQL50题之1193. 每月交易 I【简单】
  • MySQL操作进阶
  • 1. 多线程开发
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 热词评论查询功能实现
  • 机器学习(重学版)基础篇(概念与评估)
  • Qt 远程过程调用(RPC)实现方案
  • 大模型应用班-第2课 DeepSeek使用与提示词工程课程重点 学习ollama 安装 用deepseek-r1:1.5b 分析PDF 内容
  • UniappDay03
  • 高斯数据库触发器实现流水号的
  • 去中心化时代的通信革命:briefing与cpolar技术融合带来的安全范式革新
  • 【Linux系统】理解硬件 | 引入文件系统
  • 机器学习特征工程:特征选择及在医学影像领域的应用
  • 数字孪生映射探索驱动的具身导航!MorphoNavi:面向对象映射的空地机器人导航
  • 2D游戏背景滚动教程(JavaSwing)
  • 机器学习特征工程详解:特征选择与降维(PCA)
  • 数据赋能(336)——技术平台——智能化运营
  • 2.JVM跨平台原理(字节码机制)
  • Java研学-RabbitMQ(二)
  • C++中new和delete的多重面孔:operator new、new operator与placement new解析
  • 初识java
  • Python 程序设计讲义(20):选择结构程序设计——双分支结构的简化表示(三元运算符)
  • Model Control Protocol 三层架构设计,三种传输方式,完成MCP项目构建实现工具调试,多维度评价指标检测多工具多资源调用的鲁棒性和稳健性
  • java面试题(二)
  • 栈----1.有效的括号
  • 扒网站工具 HTTrack Website Copier
  • 3020雕刻机脱机自定义指令
  • 一些常见的网络攻击方式