每日力扣算法题(简单篇)

461.汉明距离

原题:

两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。

给你两个整数 x 和 y,计算并返回它们之间的汉明距离。

解题思路:

我们注意到,这里需要比较的是二进制位上数字不同的数目,那么只需要同时与1比较,就可以确定是否相同

知识储备:

位运算符&:效果比较数字二进制位第最后一位

例:1&1=1,0&0=0,0&1=0

位运算符>>:使数字的二进制位向右移位

例:2>>1=1,效果:10>>1=1

源代码:

int hammingDistance(int x, int y) {
    int count=0;
    while(x>0||y>0)
    {
        if((x&1)!=(y&1))
        {
            count++;
        }
        x=x>>1;y=y>>1;
    }
    return count;
}

你可能感兴趣的:(力扣简单篇,算法,leetcode,职场和发展)