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

相关文章:

  • SQL注入安全研究
  • FreeRTOS 任务管理学习笔记
  • 从代码学习深度强化学习 - Double DQN PyTorch版
  • 动态规划算法思路详解
  • uni-app总结5-UTS插件开发
  • JavaScript性能优化实战大纲
  • 介绍一款免费MES、开源MES系统、MES源码
  • Rpc - RpcCaller 模块
  • 获取gitlab上项目分支版本(二)
  • 据字典是什么?和数据库、数据仓库有什么关系?
  • 解锁 JavaScript 模块化:ES6 Module 语法深度指南
  • OpenGL——单位向量点乘和叉乘在几何的应用
  • 从C++编程入手设计模式——装饰器模式
  • implement用法
  • 客户催单-01.需求分析和设计
  • 【单片机】51单片机学习笔记
  • 数据结构 4 (栈和队列)
  • 苍穹外卖-2025 完成基础配置环节(详细图解)
  • 拼多多商家端 anti_content 补环境分析
  • 如何使用 USB 数据线将文件从 PC 传输到 iPhone
  • 【漏洞复现】Apache Kafka Connect 任意文件读取漏洞(CVE-2025-27817)
  • 数控滑台在精密制造中起着至关重要的作用
  • 主成分分析(PCA)例题——给定协方差矩阵
  • camel-ai Agent模块- CriticAgent
  • 用 python 开发一个可调用工具的 AI Agent,实现电脑配置专业评价
  • Vim:从入门到进阶的高效文本编辑器之旅
  • 微信小程序传参过来了,但是数据没有获取到
  • THUCNEWS数据集-文本分类
  • C++(运算符重载)
  • 2025虚幻引擎文件与文件夹命名规律