【LeetCode】461. 汉明距离
2019-08-23 本文已影响0人
秀叶寒冬
题目描述
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
注意:
0 ≤ x, y < 2^31.
示例
输入: x = 1, y = 4
输出: 2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
解答
- 自己解答
public int hammingDistance(int x, int y) {
int a[] = new int[32];
int sum = 0;
for(int i=0;i<a.length;i++){
a[i] = 0;
}
int i = 0;
while(x>0){
a[i++] = x%2;
x/=2;
}
i = 0;
while(y>0){
a[i]= a[i]+1;
i++;
y/=2;
}
for(i=0;i<a.length;i++){
if(a[i]==1){
sum++;
}
}
return sum;
}
- 其它答案
public int hammingDistance(int x, int y) {
int ans = 0;
while(x != 0 || y != 0){
if((x & 1) != (y & 1))
ans++;
x>>=1;
y>>=1;
}
return ans;
}