class Solution {
public:
int hammingDistance(int x, int y) {
}
};
461. 汉明距离
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x
和 y
,计算并返回它们之间的汉明距离。
示例 1:
输入:x = 1, y = 4 输出:2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置。
示例 2:
输入:x = 3, y = 1 输出:1
提示:
0 <= x, y <= 231 - 1
原站题解
php 解法, 执行用时: 12 ms, 内存消耗: 15.3 MB, 提交时间: 2021-05-12 16:20:54
class Solution { /** * @param Integer $x * @param Integer $y * @return Integer */ function hammingDistance($x, $y) { $n = $x ^ $y; $ans = 0; while ( $n ) { $ans += $n & 1; // 最低位是1, 则与1为1, 否则为0 $n >>= 1; // 右移1位 } return $ans; } }
golang 解法, 执行用时: 0 ms, 内存消耗: N/A, 提交时间: 2018-08-25 12:58:31
func hammingDistance(x int, y int) int { n := x ^ y; c := 0; for { if n == 0 { break; } n &= n - 1; c = c + 1; } return c; }
cpp 解法, 执行用时: 4 ms, 内存消耗: N/A, 提交时间: 2018-08-25 12:47:37
class Solution { public: int hammingDistance(int x, int y) { int n = x ^ y; int count(0); while (n != 0) { n &= n - 1; ++count; } return count; } };
javascript 解法, 执行用时: 100 ms, 内存消耗: N/A, 提交时间: 2018-08-25 12:44:44
/** * @param {number} x * @param {number} y * @return {number} */ var hammingDistance = function(x, y) { var c = (x ^ y).toString(2); return c.replace(/0/g, '').length; };
python 解法, 执行用时: 24 ms, 内存消耗: N/A, 提交时间: 2018-08-25 12:39:55
class Solution(object): def hammingDistance(self, x, y): """ :type x: int :type y: int :rtype: int """ return len(bin(x ^ y)[2:].replace('0', ''))