LeetCode 461. 汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
注意:
0 ≤ x, y < 231.
利用x & x-1
相当于去掉最低位的1即可:
class Solution {
public:
int hammingDistance(int x, int y) {
int xorRes = x ^ y;
int cnt = 0;
while(xorRes) {
xorRes &= xorRes - 1;
++cnt;
}
return cnt;
}
};
还没有评论,来说两句吧...