算法-二进制中1的个数详解编程语言
2023-06-13 09:20:44 时间
方法1:
常规思路(如代码中的 NumberOf1Mask),逐位数 1 的个数,执行 32 次循环
(注意,这里使用标志变量,而不是直接对输入变量进行移位,因为如果右移有符号整数,左边补的是符号位,最后进入死循环)
方法2:
小trick(如代码中的 NumberOf1Trick),代码中有多少个 1 就执行多少次循环。
#include iostream
#include vector
#include algorithm
using namespace std;
class Solution{
public:
int NumberOf1(int n) {
//return NumberOf1Mask(n);
return NumberOf1Trick(n);
}
int NumberOf1Trick(int n){
int ans = 0;
while(n){
ans ++;
n = n (n-1);
}
return ans;
}
int NumberOf1Mask(int n){
int ans = 0;
unsigned int mask = 1;
while(mask){
if(n mask)
ans++;
mask = 1;
}
return ans;
}
int main()
return 0;
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15311.html
cgo相关文章
- 【NLP基础】英文关键词抽取RAKE算法
- ☆打卡算法☆LeetCode 217. 存在重复元素 算法解析
- 《图解算法》系列学习(二)
- php 递归算法
- JS算法题 JavaScript常见算法题 基础语法案例(持续更新)2022年3月30日
- Nginx分发算法
- bgr2gray_tarjan算法
- 二进制与十进制,八进制,十六进制转换_十进制转十六进制算法
- 浅谈时间轮算法[通俗易懂]
- a算法解决八数码实验报告_人工智能核心算法
- 基于PyTorch,集合17种方法,南京大学等提出小样本算法库LibFewShot
- 解析 Oracle 嵌套函数实现的复杂算法(oracle嵌套函数)
- 美国西北大学联合AI创企Eko,推出心脏杂音AI筛查算法
- 现场|David Silver原文演讲:揭秘新版AlphaGo算法和训练细节
- python实现simhash算法实例