这是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篇文章。