【Leetcode每日一题】 位运算 - 位1的个数(难度⭐)(32)

news2024/11/19 23:30:19

1. 题目解析

题目链接:191. 位1的个数

这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。

核心在于计算题目所给32位二进制数1的个数返回即可。

2.算法原理

  1. 位运算特性:通过位运算,特别是按位与(&)运算和右移(>>)运算,可以逐位检查一个数的二进制表示中的每一位。

  2. 循环检查:将输入的整数与1进行按位与运算,如果结果为1,则说明最低位是1;否则,说明最低位是0。然后,将整数右移一位,继续检查下一位,直到检查完所有位。

  3. 计数:在循环中,每检测到一位为1,就增加计数器的值。最终,计数器的值即为二进制表示中1的个数。

算法步骤:

  • 初始化计数器为0。
  • 循环执行以下操作,直到整数变为0:
    • 对整数和1进行按位与运算,得到最低位的值。
    • 如果结果为1,则计数器加1。
    • 将整数右移一位。
  • 返回计数器的值作为结果。

这个算法的时间复杂度是O(k),其中k是整数中1的个数,因为需要遍历每一位来检查是否为1。在最坏情况下,当整数全为1时,时间复杂度是O(32),因为题目中指定了输入是长度为32的二进制串。

3.代码编写

class Solution 
{
public:
    int hammingWeight(uint32_t n) 
    {
        int ret = 0;
        for(int i = 0; i < 32; i++)
        {
            if((n >> i) & 1)
            {
                ret++;
            }
        }
        return ret;
    }
};

The Last

嗯,就是这样啦,文章到这里就结束啦,真心感谢你花时间来读。

觉得有点收获的话,不妨给我点个吧!

如果发现文章有啥漏洞或错误的地方,欢迎私信我或者在评论里提醒一声~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1507430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLO算法改进Backbone系列之:FocalNet

摘要&#xff1a;本文提出焦调制网络(FocalNets)&#xff0c;其中自注意(SA)完全被焦调制模块取代&#xff0c;用于建模视觉中的令牌交互。焦点调制包括三个组成部分&#xff1a;&#xff08;1&#xff09;焦点上下文化&#xff0c;使用深度卷积层堆栈实现&#xff0c;从短范围…

【MATLAB第99期】#源码分享 | 基于MATLAB的SHEPard模型多输入单输出回归预测模型

【MATLAB第99期】#源码分享 | 基于MATLAB的SHEPard模型多输入单输出回归预测模型 Shepard模型(简称SP模型)就是一种直观的、可操作的相似预测法&#xff0c;常用于插值。相似预测法基本原理按照相似原因产生相似结果的原则&#xff0c;从历史样本中集中找出与现在的最相似的一…

SpringCloud使用

一 、SpringCloud项目简介 SpringCloud项目可划为三个角色&#xff0c;一个是服务的注册与发现中心&#xff08;Eureka &#xff09;&#xff0c;一个是服务的提供方&#xff08;Provider&#xff09;&#xff0c;最后一个是服务的消费方&#xff08;Consumer&#xff09;&…

C语言内存管理-堆内存

堆内存&#xff08;heap&#xff09;又被称为动态内存、自由内存&#xff0c;简称堆。堆是唯一可被开发者自定义的区段&#xff0c;开发者可以根据需要申请内存的大小、决定使用的时间长短等。但又由于这是一块系统“飞地”&#xff0c;所有的细节均由开发者自己把握&#xff0…

ArcGIS JSAPI 学习教程 - ArcGIS Maps SDK for JavaScript 不同版本4.8-4.28(最新版)离线部署

ArcGIS JSAPI 学习教程 - ArcGIS Maps SDK for JavaScript 不同版本4.8-4.28&#xff08;最新版&#xff09;SDK离线部署 测试资源4.18 以及之前版本4.19 以及之后版本 接触一段时间 ArcGIS JSAPI 之后&#xff0c;整体感觉还好&#xff0c;后来需要解决不同版本问题&#xff0…

学习Java的第六天

目录 一、变量 1、变量的定义 2、变量的声明格式 3、变量的注意事项 4、变量的作用域 二、常量 三、命名规范 Java 语言支持如下运算符&#xff1a; 1、算术运算符 解析图&#xff1a; 示例&#xff1a; 2、赋值运算符 解析图&#xff1a; 示例&#xff1a; 3、关…

若依项目部署之后页面无法展示,一直在加载的解决办法

解决办法 1. srore/modules/permission.js export const loadView (view) > {if (process.env.NODE_ENV "development") {return (resolve) > require([/views/${view}], resolve);} else {// return () > import(/views/${view});return (resolve) >…

如何从碎屏的华为手机恢复数据?6 种热门方法

“只是想知道是否可以从屏幕损坏的华为恢复数据&#xff1f;我尝试将其插入我的笔记本电脑&#xff0c;但手机不允许我进入&#xff0c;因为它要求我更改手机中的设置等.我最好的选择是什么&#xff1f; 当发生事故&#xff0c;我们的华为手机屏幕损坏时&#xff0c;访问这些关…

selenium也能过某数、5s盾..

文章转载于&#xff1a;selenium也能过某数、5s盾… 直接安装: pip install undetected_chromedriver运行代码&#xff1a; import undetected_chromedriver as uc import timedriver uc.Chrome(executable_pathrC:\Users\chromedriver.exe,version_main111) driver.get(网…

从element-plus 引入ILoadingInstance 出现类型错误

具体报错如下图所示&#xff1a; 1、引入ILoadingInstance 出现错误&#xff1a; 解决问题如下所示&#xff1a; 可能是因为element-plus 多次升级原因&#xff0c;将原来的内部代码多次改下了&#xff0c;原来是loading.type文件&#xff0c;现在变成loading.js&#xff0c;包…

传统FTP传输存在哪些局限性?如何进行FTP替代?

说到文件传输产品&#xff0c;很多人第一反应都是FTP&#xff0c;FTP是一种通用的文件传输协议&#xff0c;在各种操作系统和网络环境下都得到广泛支持&#xff0c;使用方便&#xff0c;确实在文件传输领域风靡了很多年&#xff0c;但随着互联网技术的发展和企业数字化需求的提…

HuggingFace团队亲授:如何使用HuggingFace上的开源模型

Open Source Models with Hugging Face 本文是 https://www.deeplearning.ai/short-courses/open-source-models-hugging-face/ 这门课程的学习笔记。 文章目录 Open Source Models with Hugging FaceWhat you’ll learn in this course Lesson 1: Selecting ModelsLesson 2: …

hutool,真香!

大家好&#xff0c;我是苏三&#xff0c;又跟大家见面了。 前言 今天给大家介绍一个能够帮助大家提升开发效率的开源工具包&#xff1a;hutool。 Hutool是一个小而全的Java工具类库&#xff0c;通过静态方法封装&#xff0c;降低相关API的学习成本&#xff0c;提高工作效率&…

【Wio Terminal】使用WiFi(3)- Wi-F的高级使用

使用WiFi&#xff08;3&#xff09; Wi-F的高级使用HTTPClient 的使用HTTP GETHTTPs GETHTTP POSTWebServerHTTP Authentication Web ServerDNSServermDNSmDNS-SDWiFiManager Wi-F的高级使用 本节介绍了一些WiFi的高级库用法&#xff0c;如HTTPClient、DNSServer和WebServer库…

fastjson2 简单使用

参考 https://alibaba.github.io/fastjson2/ https://alibaba.github.io/fastjson2/annotations_cn.html https://alibaba.github.io/fastjson2/features_cn 基本操作 json 字符串转为 jsonObject&#xff1a; String json "{\"name\":\"tom\",\…

HTML5+CSS3+移动web——CSS基础

系列文章目录 HTML5CSS3移动web——HTML 基础-CSDN博客https://blog.csdn.net/ymxk2876721452/article/details/136070953?spm1001.2014.3001.5501HTML5CSS3移动web——列表、表格、表单-CSDN博客https://blog.csdn.net/ymxk2876721452/article/details/136221443?spm1001.2…

SOC的多核启动流程详解

目录 1、基础概念2、启动流程3、ATF(TF-A)代码的剖析5、软件如何判断当前是cold reset/warm reset/primary boot/senondary boot5.1 cold reset和warm reset5.2 primary boot和secondary boot 6、mailbox的介绍6.1 mailbox是什么6.2 mailbox的作用6.3 mailbox的示例 7、具体场景…

案例分析01-题型分析与历年案例题真题考点汇总(2024年软考高级系统架构设计师冲刺知识点总结)

1、历年真题案例分析题考点汇总 1.1 2018年~2023年 1.2 2012年~2017年 2、考试安排 案例分析题的考试安排在下午&#xff0c;时间为1.5小时&#xff0c;相对来说比较轻松。 上午&#xff1a;09:00-11:30,150分钟&#xff0c;2.5小时 综合知识题&#xff0c;全选择题&#xff…

Ps:画笔工具

画笔工具 Brush Tool是 Photoshop 中最常用的工具&#xff0c;可广泛地用于绘画与修饰工作之中。 快捷键&#xff1a;B ◆ ◆ ◆ 常用操作方法与技巧 1、熟练掌握画笔工具的操作对于使用其他工具也非常有益&#xff0c;因为 Photoshop 中许多与笔刷相关的工具有类似的选项和操…

职场成功的关键:积极主动,勇于担当

在职场中&#xff0c;每个人都渴望成功。然而&#xff0c;成功并非一蹴而就&#xff0c;而是需要我们在日常工作中不断积累、锻炼和提升。本文将为您揭示职场成功的关键因素&#xff0c;帮助您在职场道路上越走越远。 一、积极主动&#xff0c;主动承担责任 在职场中&#xff0…