461. Hamming Distance
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Given two integers x
and y
, calculate the Hamming distance.
Note:
0 ≤ x
, y
< 231.
Example:
Input: x = 1, y = 4
Output: 2
Explanation:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
The above arrows point to positions where the corresponding bits are different.
int hammingDistance(int x, int y) { // time: O(1); space: O(1)
int res = 0, tmp = x ^ y;
while (tmp) {
if (tmp & 1) ++res;
tmp >>= 1;
}
return res;
}
int hammingDistance(int x, int y) { // time: O(1); space: O(1)
int res = 0, n = x ^ y;
while (n) {
++res;
n &= (n - 1);
}
return res;
}
Last updated
Was this helpful?