/**
* @param {number} x
* @param {number} y
* @return {number}
*/
var hammingDistance = function(x, y) {
var t = x ^ y;
var sum = 0;
while (t) {
sum += t & 1;
t = t >> 1;
}
return sum;
};
/**
* @param {number} x
* @param {number} y
* @return {number}
*/
var hammingDistance = function(x, y) {
var t = x ^ y;
var sum = 0;
while (t) {
sum++;
t = t & (t - 1)
}
return sum;
};
先异或,用与算距离 执行用时 : 80 ms, 在Hamming Distance的JavaScript提交中击败了96.67% 的用户 内存消耗 : 33.5 MB, 在Hamming Distance的JavaScript提交中击败了83.74% 的用户
解法二,利用二进制特性,n & (n - 1) 的结果会比 n 少一个 1。 执行用时 : 76 ms, 在Hamming Distance的JavaScript提交中击败了97.27% 的用户 内存消耗 : 33.5 MB, 在Hamming Distance的JavaScript提交中击败了90.96% 的用户