431.汉明距离

作者: 第四单元 | 来源:发表于2018-04-11 12:05 被阅读3次

    题目

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

    给出两个整数 xy,计算它们之间的汉明距离。

    思路

    先找出两个数字哪些位置的数字不同,再统计个数。
    使用异或运算,10=01=1 00=11=0
    那么z=x^y z的二进制表示中1的个数就是答案。
    再用191题求‘’“位一的个数”就得到答案了。

    代码

    class Solution {
        private static int hammingWeight(int n) {
            int count = 0;
            int c = 1;
    
            for(int i = 0; i < 32; i++) {
                if((n & (c << i)) != 0)
                    count++;
            }    
    
            return count;
        }
    
        public int hammingDistance(int x, int y) {
            int z = x ^ y;
            return hammingWeight(z);
        }
    }
    

    相关文章

      网友评论

        本文标题:431.汉明距离

        本文链接:https://www.haomeiwen.com/subject/ippahftx.html