【每日一题】461. 汉明距离

147 阅读1分钟

这是leetcode中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

通过次数181,798提交次数223,563

来源:力扣(LeetCode)

链接:leetcode-cn.com/problems/ha…

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

算法描述


/**
 * @param {number} x
 * @param {number} y
 * @return {number}
 */
var hammingDistance = function(x, y) {
//来到简单的题目 18点23分
    //首先需要将十进制转化成二进制,然后对每一位进行异或,如果为1的就让结果加一
    //对于数字的话,可以使用number.toString(b) 转化成b进制
    //幂数计算 Math.pow(a,b)  a^b
    //转化成二进制
    //我还以为很难呢 18点43分
    //从最后一个往前

    //有一个小问题,就是我用 0001 ^ 0100 = 65 不知道为啥 ,但是 1^100 = 101,有点奇怪
    var res = 0
    var num = x^y
    var two_ = num.toString(2)
    for(let i = 0;i < two_.length;i++){
        if(two_[i] == 1){
            res++
        }
    }
    return res
};

最后


这是我2022年分享的「leetcode」第NO.4篇文章。