当前位置:网站首页>leetcode 461. 汉明距离
leetcode 461. 汉明距离
2022-08-03 20:06:00 【会编程的露娜】
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x 和 y,计算并返回它们之间的汉明距离。
示例 1:
输入:x = 1, y = 4
输出:2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
~~~~~~ ↑ ~~~ ↑
上面的箭头指出了对应二进制位不同的位置。
提示:
0 <= x, y <= 231 - 1
思路:
找2个数相同位置上出现不同数字的情况,也就是说如果一个为0,那么另一个就得为1。
可以看成先把它们聚到一个数上,然后判断二进制的32位中有多少是1。
(有多少是1那就代表之前2个数在合并时有多少个相同位置的数是不同的,口诀:同0异1)
class Solution {
public:
int hammingDistance(int x, int y) {
int he=0;
x^=y;
while(x){
x&=(x-1);
++he;
}
return he;
}
};
还有一种方法就是: C++内置了计算二进制表达中 1 的数量的函数
class Solution {
public:
int hammingDistance(int x, int y) {
return __builtin_popcount(x^y); //就是这个函数 __builtin_popcount()
}
};
边栏推荐
猜你喜欢
随机推荐
友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
LeetCode 1374. 生成每种字符都是奇数个的字符串
The sword refers to Offer II 044. The maximum value of each level of the binary tree-dfs method
ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动
详解AST抽象语法树
宁德时代2号人物黄世霖辞任副董事长:身价1370亿
倒计时2天,“文化数字化战略新型基础设施暨文化艺术链生态建设发布会”启幕在即
JWT详解
MySQL Basics
ESP8266-Arduino编程实例-MCP4725数模转换器驱动
Alexa染料标记RNA核糖核酸|RNA-Alexa 514|RNA-Alexa 488|RNA-Alexa 430
力扣59-螺旋矩阵 II——边界判断
演讲议题及嘉宾重磅揭晓,TDengine 开发者大会推动数据技术“破局”
阿洛的反思
不知道这4种缓存模式,敢说懂缓存吗?
Statistical machine learning 】 【 linear regression model
YARN功能介绍、交互流程及调度策略
力扣707-设计链表——链表
按需视觉识别:愿景和初步方案
node版本切换工具NVM以及npm源管理器nrm