汉明距离

题目要求

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

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

注意:
0 ≤ x, y < 231.

示例:

输入: x = 1, y = 4

输出: 2

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/hamming-distance
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


####求解方法

  • 通过^方法得出结果上面1的个数即为所求。

  • 通过&、count++利用count变量表示不同的个数,并返回。

    public class Solution1 {
        public int hammingDistance(int x, int y) {
            int count = 0;
            int ans = x ^ y;
            while (ans != 0) {
                count++;
                ans = ans & (ans - 1);
            }
    
            return count;
        }
    }

    时间空间复杂度均为O(1)。


   转载规则


《汉明距离》 cyyyys 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
增减字符串匹配 增减字符串匹配
题目要求给定只含 “I”(增大)或 “D”(减小)的字符串 S ,令 N = S.length。 返回 [0, 1, …, N] 的任意排列 A 使得对于所有 i = 0, …, N-1,都有: 如果 S[i] == “I”,那么 A[i]
2019-09-09
下一篇 
macOS下Hadoop的安装和使用 macOS下Hadoop的安装和使用
安装环境本机系统:macOS 虚拟机:Ubuntu 在安装Hadoop之前需要进行一些准备工作,包括创建hadoop用户、更新APT、安装SSH和安装Java环境等。 安装SSHSSH是Secure Shell的缩写,是建立在应用层和传输
2019-09-07
  目录