
正文
【leetcode】461. Hamming Distance
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
problem
461. Hamming Distance
solution1:
根据题意,所求汉明距离指的是两个数字的二进制对应位不同的个数。对应位异或操作为1的累积和。
class Solution {
public:
int hammingDistance(int x, int y) {
int ans = ;
for(int i=; i<; i++)
{
if((x&(<<i))^(y&(<<i))) ans++;
}
return ans;
}
};
solution2:
两个数字异或之后,统计结果二进制中1的个数。
class Solution {
public:
int hammingDistance(int x, int y) {
int ans = ;
int tmp = x ^ y;
for(int i=; i<; i++)
{
ans += ((tmp>>i) & );//err.
}
return ans;
}
};
注意,两种solution都是移动 i 个位置。
参考
1. Leetcode_461. Hamming Distance;
完






