zoukankan      html  css  js  c++  java
  • [LeetCode]461. 汉明距离

    题目


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

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

    注意:
    0 ≤ x, y < 2³¹
    示例:

    输入: x = 1, y = 4
    
    输出: 2
    
    解释:
    1   (0 0 0 1)
    4   (0 1 0 0)
           ↑   ↑
    
    上面的箭头指出了对应二进制位不同的位置。

    代码


    class Solution {
    public:
        int hammingDistance(int x, int y) {
            int resultNum=x^y;
            int result=0;
            while(resultNum!=0)
            {
                if(resultNum&1==1)
                {
                    result++;
                }
                resultNum=resultNum>>1;
            }
            return result;
        }
    };

    思路


    利用异或计算出所有不同的位保存到resultNum,然后依次判断最低位是否为1,是1的话结果result+1,然后右移,直到这个数resultNum为0

    https://github.com/li-zheng-hao
  • 相关阅读:
    4.内核编译和裁剪
    2.Linux技能要求
    3.字符驱动框架
    1.Linux命令
    4.类和抽象
    3.指针
    2.C++语言特性
    1.编译器
    计数排序——Counting Sort
    网关、网桥、路由器、集线器
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053684.html
Copyright © 2011-2022 走看看