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

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

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

    注意:
    0 ≤ x, y < 231.

    示例:

    输入: 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[] Szx = ToBin(x);
            int[] Szy = ToBin(y);
            if(Szx.length >= Szy.length)
            {
                int i = 0, returnNum = 0;
                while(i < Szx.length)
                {
                    if(i >= Szy.length)
                    {
                        if(Szx[i] == 1)
                            returnNum++;
                    }
                    else
                    {
                        if(Szy[i] != Szx[i])
                            returnNum++;
                    }
                    i++;
                }
                return returnNum;
            }
            else
            {
                int i = 0, returnNum = 0;
                while(i < Szy.length)
                {
                    if(i >= Szx.length)
                    {
                        if(Szy[i] == 1)
                            returnNum++;
                    }
                    else
                    {
                        if(Szy[i] != Szx[i])
                            returnNum++;
                    }
                    i++;
                }
                return returnNum;
            }
        }
        public int[] ToBin(int x)
        {
            List<Integer> tmplist = new ArrayList<Integer>();
            int n = 2;
            while(x != 0)
            {
                int r = x % 2;
                tmplist.add(r);
                x = x / 2;
            }
            int [] returnSz = new int [tmplist.size()];
            for(int i = 0; i < returnSz.length; i++)
            {
                returnSz[i] = tmplist.get(i);
            }
            return returnSz;
        }
    }
    

      第一遍好难,,,我要努力!

    终此一生,只有两种办法:要么梦见生活,要么落实生活。

  • 相关阅读:
    仿造email后缀自动添加功能(1)
    仿造email后缀搜索功能(2)
    取出input内的空格
    小知识点
    关于闭包
    js清除浏览器缓存的几种方法
    动态生成模板(模板生成器)
    安卓端调用h5界面js方法和ios端调用h5界面js方法
    linux 命令
    如何做个好员工
  • 原文地址:https://www.cnblogs.com/Duancf/p/12430773.html
Copyright © 2011-2022 走看看