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

191. 位1的个数

目录

一、问题描述

二、解题思路

三、代码

四、复杂度分析


一、问题描述

给定一个正整数 n,编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数(也被称为汉明重量)。

二、解题思路

强制将 n 当作无符号类型处理

  • 即使原始 n 是负数,转换为 unsigned int 后,仍然保留了其 32 位的补码表示

  • num & 1num >>= 1 会安全地进行 32 次迭代,不会陷入死循环。

  • 所以我们依然能正确统计 1 的个数!

三、代码

class Solution {
public:int hammingWeight(int n) {unsigned int num = static_cast<unsigned int>(n); // 转换为无符号整数int count = 0;while (num != 0) {count += (num & 1);  // 判断最低位是否为1num >>= 1;           // 无符号右移,不保留符号位}return count;}
};

四、复杂度分析

复杂度类型复杂度说明
时间复杂度O(1)固定32位整数,最多32次循环
空间复杂度O(1)只使用常数个变量
http://www.lqws.cn/news/445411.html

相关文章:

  • vs code配置go开发环境以及问题解决 could not import cannot find package in GOROOT or GOPATH
  • Linux树莓派项目实战:外网访问、PWM呼吸灯、超声波测距与驱动开发
  • Linux内核中通过perf_event监控内存访问的硬件断点触发流程
  • LINUX 619 NFS rsync
  • Neo4j操作指南:修改节点数据与新增节点属性
  • 1. C++ WebServer项目分享
  • Kafka性能调优全攻略:从JVM参数到系统优化
  • M-DPO复现
  • 从Excel到知识图谱再到数据分析:数据驱动智能体构建指南
  • HALCON相机标定
  • 安装MySQL 5.7导入数据,修改密码,创建账号并授权
  • CppCon 2017 学习:Everything You Ever Wanted to Know about DLLs
  • craw14ai 框架的入门讲解和实战指南——基于Python的智能爬虫框架,集成AI(如NLP/OCR)实现自动化数据采集与处理
  • 协作式机器人助力提高生产速度和效益
  • Molmo and PixMo论文精读
  • Java SE - String自定义类型
  • Docker 日志
  • XMOS基于边缘AI+DSP+MCU+I/O智算芯片的音频解决方案矩阵引领行业创新潮流
  • 运维人员常用网站列表
  • 【深度学习】条件随机场(CRF)深度解析:原理、应用与前沿
  • day35-Django(1)
  • MySQL 面试之事务和锁篇
  • 如何设计可维护、可扩展的测试框架
  • 软件范式正在经历第三次革命
  • 全网独家源码出售,电商任务系统补单平台系统源码部署搭建全开源支持二次开发
  • ubuntu 系统 pgm图片和png相互转化
  • Haproxy搭建web集群
  • 泛微OAe9-后端二开常见数据库操作
  • C++实现手写strlen函数
  • AI Agent与Agentic AI:原理、应用、挑战与未来展望