当前位置:网站首页>Leetcode sword refers to Offer 15. 1 in the binary number
Leetcode sword refers to Offer 15. 1 in the binary number
2022-08-03 20:11:00 【Luna programming】
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).).
示例 1:
输入:n = 11 (控制台输入 00000000000000000000000000001011)
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’.
提示:
输入必须是长度为 32 的 二进制串 .
思路一:& 和 >> (使用 按位与 和 右移运算符 逐位判断)
时间复杂度:O(n)
空间复杂度:O(1)
class Solution {
public:
int hammingWeight(uint32_t n) {
int sum=0;
while(n){
sum+=(n&1); // (n&1) is to determine whether the last digit is1.按位与的运算规则是:2Only in the corresponding position of the base number2numbers are1,结果才为1
//因为1the binary representation of 32Only the last of the bits is1,所以前31Bitwise AND is followed by both0,Then it is to judge whether the last bit is all1,若都是1则为真, (n&1) 的值为1,否则为0
n>>=1; //右移1bit delete the last bit,高位正数补0,负数补1
}
return sum;
}
};
思路二:使用 n&(n-1)
class Solution {
public:
int hammingWeight(uint32_t n) {
int sum=0;
while(n){
n&=(n-1); //每一次的 n&=(n-1) 都将32rightmost of the bits1变为0,直到最后n为0
++sum;
}
return sum;
}
};
关于位运算(按位与、按位或、异或)可看 位运算(按位与、按位或、异或)
边栏推荐
- 涨薪5K必学高并发核心编程,限流原理与实战,分布式计数器限流
- C51 存储类型与存储模式
- 友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
- 一种能有效缓解环境噪声对音频质量干扰的方案
- Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
- Detailed AST abstract syntax tree
- 调用EasyCVR接口时视频流请求出现404,并报错SSL Error,是什么原因?
- 开源生态研究与实践| ChinaOSC
- 宁德时代2号人物黄世霖辞任副董事长:身价1370亿
- 【飞控开发高级教程6】疯壳·开源编队无人机-AI语音控制
猜你喜欢
边缘盒子+时序数据库,美的数字化平台 iBuilding 背后的技术选型
node版本切换工具NVM以及npm源管理器nrm
基础软件与开发语言开源论坛| ChinaOSC
RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
Pytorch GPU 训练环境搭建
头条服务端一面经典10道面试题解析
1161 最大层内元素和——Leetcode天天刷【BFS】(2022.7.31)
演讲议题及嘉宾重磅揭晓,TDengine 开发者大会推动数据技术“破局”
Golang死信队列的使用
倒计时2天,“文化数字化战略新型基础设施暨文化艺术链生态建设发布会”启幕在即
随机推荐
头条服务端一面经典10道面试题解析
基础软件与开发语言开源论坛| ChinaOSC
codeforces:C. Maximum Subrectangle【前缀和 + 贪心 + 最小子数组和】
tRNA甲基化偶联3-甲基胞嘧啶(m3C)|tRNA-m3C (3-methylcy- tidine)
信使mRNA甲基化偶联3-甲基胞嘧啶(m3C)|mRNA-m3C
ESP8266-Arduino编程实例-MCP4725数模转换器驱动
Kubernetes资源编排系列之三: Kustomize篇 作者 艄公(杨京华) 雪尧(郭耀星)
xss.haozi练习通关详解
ARMuseum
MapReduce介绍及执行过程
「学习笔记」高斯消元
Auto.js实现朋友圈自动点赞
Auto.js脚本程序打包
汉源高科8光口12电口交换机千兆8光8电12电16电网管型工业以太网交换机
tRNA修饰2-甲基胞嘧啶(m2C)|tRNA修饰m2G (N2-methylguanosine)
Network protocol-TCP, UDP difference and TCP three-way handshake, four wave
【leetcode】剑指 Offer II 008. 和大于等于 target 的最短子数组(滑动窗口,双指针)
622 设计循环队列——Leetcode天天刷【循环队列,数组模拟,双指针】(2022.8.2)
高效目标检测:动态候选较大程度提升检测精度(附论文下载)
List类的超详细解析!(超2w+字)