编程问题:
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。
示例:
- 输入: x = 1, y = 4
输出: 2
解法:
1.异或+位运算
时间复杂度O(1),int 的大小是固定的,处理时间也是固定的。 32 位整数需要 32 次迭代。
空间复杂度O(1)
class Solution {
public:
int hammingDistance(int x, int y) {
int res = 0;
x ^= y;
while (x)
{
if (x & 1)
res++;
x = x >> 1;
}
return res;
}
};