美文网首页
461.汉明距离

461.汉明距离

作者: su945 | 来源:发表于2020-08-26 23:09 被阅读0次

    题目描述

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

    给出两个整数 xy,计算它们之间的汉明距离。
    输入: x = 1, y = 4

    输出: 2

    解释:
    1 (0 0 0 1)
    4 (0 1 0 0)
    ↑ ↑

    上面的箭头指出了对应二进制位不同的位置。

    问题分析

    解题思路1

    class Solution {
    public:
        int hammingDistance(int x, int y) {
            //计算异或的值
            int n = x ^ y;
    
            //计算
            int counter = 0;
    
            //将每一个元素左移然后进行计算
            while (n > 0)
            {
                counter += n & 1;
                n >>= 1;
            }
    
            return counter;
        }
    };
    

    解题思路2

    class Solution {
    public:
        int hammingDistance(int x, int y) {
            return bitset<32>(x^y).count();
        }
    };
    

    相关文章

      网友评论

          本文标题:461.汉明距离

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