老卫带你学---leetcode刷题(191. 位1的个数)

news/2024/7/7 20:27:01

191. 位1的个数

问题

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

提示:

请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 3 中,输入表示有符号整数 -3。

示例 1:

输入:n = 00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。
示例 2:

输入:n = 00000000000000000000000010000000
输出:1
解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 ‘1’。
示例 3:

输入:n = 11111111111111111111111111111101
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 ‘1’。

解决

(n−1) 作用: 二进制数字 n 最右边的 1 变成 0 ,此 1 右边的 0 都变成 1 。

n&(n−1) 作用: 二进制数字 n 最右边的 1 变成 0,其余不变。

那我们只需要统计多少次 n&(n-1)可以让n变为0,就得到结果了

class Solution:
    def hammingWeight(self, n: int) -> int:
        res=0
        while n:
            res+=1
            n&=n-1
        return res

http://lihuaxi.xjx100.cn/news/2056296.html

相关文章

周鸿祎免费课演示AI新品,瞬时流量暴增现场增加服务器

2月29日,360创始人周鸿祎首堂AI免费课开讲,吸引千万网友围观。演讲现场周鸿祎演示了两款AI驱动的新产品。在演示测试版360AI搜索时,由于用户体验火爆,瞬时流量暴增44倍,为满足用户和全网用户需求临时增加了服务器。产品…

nginx(三)实现反向代理客户端 IP透传

正常情况下,客户端去访问代理服务器,然后代理服务器再取访问真实服务器,在真实服务器上,只能显示代理服务器的ip地址,而不显示客户端的ip地址,如果想让客户端的ip地址也能在真实服务端看见,这一…

Python中简单正则获取百度新闻页面所有超链接示例

一、示例代码: import re import requestsheaders {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/""85.0.4183.83 Safari/537.36"} resp requests.get(http://news.…

中国汽车电子行业发展现状分析及投资前景预测报告

全版价格:壹捌零零 报告版本:下单后会更新至最新版本 交货时间:1-2天 第一章 汽车电子相关概述 1.1 汽车的相关介绍 1.1.1 汽车的概念 我国国家最新标准《汽车和挂车类型的术语和定义》(GB/T3730.1—2001&…

各类学习资料来了,赶紧来尝新!!!

工具资源:关注 IT技术馆, 回复关键字 ------------------文中资源-------------------- Java设计模式-模板方法模式(14) 强烈推荐!超级好用的TCP/UDP测试工具 项目管理构建不只是Maven,还有更优越的它! …

【数学】【深度优先搜索】【图论】【欧拉环路】753. 破解保险箱

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 数学 深度优先搜索 图论 欧拉环路 LeetCode753. 破解保险箱 有一个需要密码才能打开的保险箱。密码是 n 位数, 密码的每一位都是范围 [0, k - 1] 中的一个数字。 保险箱有一种特殊的密码校验方法,你可以随意…

补一次buuctf_crypto的脚本

题目是:Buuctf_crypto_还原大师 本篇写作原因:嗯?????我记得我这篇文章写过啊,怎么找不到了。在这传一下我改进的脚本: import hashlib k TASC?O3RJMV?WDJKX?ZM for…

【C++】认识类和对象

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、什么是面向对象?二、类的引入三、类的定义四、类的访问限定符与…