题目:
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x
和 y
,计算并返回它们之间的汉明距离。
题解:
1.利用函数
Integer.bitCount():计算二进制表达中 1 的数量的函数
class Solution {
public int hammingDistance(int x, int y) {
return Integer.bitCount(x ^ y);
}
}
2.移位实现位计数
class Solution {
public int hammingDistance(int x, int y) {
int a = x ^ y;
int res = 0;
while (a != 0) {
res += a & 1; //a & 1是为了求出最低位是否为1,a & 1得到的是a最低位的值
a >>= 1; //最低位判断完就丢掉,左边一位补上
}
return res;
}
}
参考:力扣