文章目录
1. 题目2. 描述3. 思路4. 实现
1. 题目
461. 汉明距离
2. 描述
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
注意: 0 ≤ x, y < 231.
示例:
输入: x = 1, y = 4
输出: 2
解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑
上面的箭头指出了对应二进制位不同的位置。
3. 思路
汉明距离其实就是最终两个数进行异或运算后的数转换为二进制后其中为 1 的个数,此时的主要操作是对字符串的遍历,时间复杂度为
O
(
n
)
O(n)
O(n).
4. 实现
public int hammingDistance(int x
, int y
) {
int xor
= x
^ y
;
int count
= 0;
String binaryStr
= Integer
.toBinaryString(xor
);
for (int i
= 0; i
< binaryStr
.length(); i
++) {
if ('1' == binaryStr
.charAt(i
)) {
count
++;
}
}
return count
;
}