461 Hamming Distance
TheHamming distancebetween two integers is the number of positions at which the corresponding bits are different.
Given two integersxandy, 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.
Solution) We can use XOR operator for the given two integers. XOR can determine whether the corresponding bit is same or not. If they are same, it is 1, otherwise it is 0.
First solution is to count bit using bitwise operation
class Solution {
public int hammingDistance(int x, int y) {
int xor = x ^ y;
int count = 0;
while(xor >0) {
count += xor & 1;
xor >>= 1;
}
return count;
}
}
Second solution is to use the Integer class to count bits.
class Solution {
public int hammingDistance(int x, int y) {
return Integer.bitCount(x^y);
}
}