当前位置:网站首页>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;
}
};
关于位运算(按位与、按位或、异或)可看 位运算(按位与、按位或、异或)
边栏推荐
- 开源教育论坛| ChinaOSC
- The sword refers to Offer II 044. The maximum value of each level of the binary tree-dfs method
- MapReduce介绍及执行过程
- 调用EasyCVR云台控制接口时,因网络延迟导致云台操作异常该如何解决?
- tensorflow-gpu2.4.1安装配置详细步骤
- Detailed AST abstract syntax tree
- 友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
- 【飞控开发高级教程4】疯壳·开源编队无人机-360 度翻滚
- 【HiFlow】经常忘记签到怎么办?使用腾讯云场景连接器每天提醒你。
- Benchmarking Lane-changing Decision-making for Deep Reinforcement Learning
猜你喜欢
随机推荐
Auto.js实现朋友圈自动点赞
数学之美 第六章——信息的度量和作用
华为设备配置VRRP负载分担
揭秘5名运维如何轻松管理数亿级流量系统
利用 rpush 和 blpop 实现 Redis 消息队列
Benchmarking Lane-changing Decision-making for Deep Reinforcement Learning
RNA核糖核酸修饰Alexa 568/[email protected] 594/[email prote
EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
LeetCode 899. 有序队列
阿洛的反思
LeetCode 622. 设计循环队列
php根据两点经纬度计算距离
高性能计算软件与开源生态| ChinaOSC
抖音web逆向教程
简易电子琴设计(c语言)
云服务器如何安全使用本地的AD/LDAP?
ARMuseum
一种能有效缓解环境噪声对音频质量干扰的方案
C51 存储类型与存储模式
刷题错题录1-隐式转换与精度丢失









