返回轨道
算法 · 2026-05-14 · 14 阅读

P55 汉明距离

算法 14 阅读

信号摘要

难度:Easy · 时长:02:01 · leetcode 461 · lintcode 835

P55 汉明距离

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你两个整数,你要计算出它们的二进制表示中,相应的二进制位有多少个是不同的。这个不同的个数,也称为这两个整数的汉明距离。

比如说,给你的两个整数是 3 和 8。它们的二进制表示分别是:

3: 0011 8: 1000

这两个数有 3 个二进制位是不相同的,因此它们的汉明距离是 3。

相关视频:49. 二进制中 1 的个数

代码

public class AlgoCasts {

  int numberOfOne(int n) {
    int count = 0;
    while (n != 0) {
      ++count;
      n &= (n - 1);
    }
    return count;
  }

  public int hammingDistance(int x, int y) {
    return numberOfOne(x ^ y);
  }

}

📡 通讯频道