LeetCode 461. 汉明距离

LeetCode 461. 汉明距离

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

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

示例 1:

输入:x = 1, y = 4

输出:2

解释:

1 (0 0 0 1)

4 (0 1 0 0)

↑ ↑

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

示例 2:

输入:x = 3, y = 1

输出:1

提示:

0 <= x, y <= 231 - 1

python 复制代码
class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        res = 0
        for i in range(32):
            res += ((x ^ y) >> i) & 1
        return res

Brian Kernighan 算法,重要常数项优化方法

f(x)=x & (x−1),则 f(x)的值为x二进制中最右侧1变为0的新二进制数的值

BK算法可以用于快速计算二进制数中1的数量,节约常数时间

python 复制代码
class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        res = 0
        a = x ^ y
        while a:
            a = a & (a - 1)
            res += 1
        return res
相关推荐
HjhIron13 小时前
面试常客:字符串算法从入门到进阶
算法·面试
吴佳浩15 小时前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹16 小时前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
vivo互联网技术20 小时前
ICLR 2026 | 基于后验采样的图像恢复方法LearnIR:人脸去阴影、去雾
人工智能·算法·aigc
浮生望1 天前
JS字符串与回文算法:从包装类到双指针的面试进阶之路
javascript·算法
黄敬峰1 天前
面试必刷:从JS底层包装类到双指针,彻底搞懂字符串与回文算法
算法
地平线开发者1 天前
J6B vio scenario sample
算法
BothSavage2 天前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn2 天前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法