【刷题笔记10.6】LeetCode:汉明距离

LeetCode:汉明距离

一、题目描述

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

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

二、分析及代码实现

对于汉明距离问题我们其实可以将其转换为:计算x 和 y按位异或后求结果中1 的位数

本题这里我们给出两种解题方法:

方法1:内置位计数功能

java 复制代码
class Solution {
    public int hammingDistance(int x, int y) {
        return Integer.bitCount(x ^ y);
    }
}

方法2:移位实现位计算

算法核心思想如下:

  • 1、首先计算出x 按位异或 y,记作s = x ^ y;并新建计数器result用于记录s的二进制表示中1的位数
  • 2、通过s 按位与 1 不断的检查 s的最低位,如果最低位为 1 ,那么令计数器加 1,然后我们令 s 的整体位右移 1 位,这样最低位就被舍弃,原本的次位变成了最低位。我们重复这个过程直到 s = 0 为止。这样计数器中就累计了 s 的二进制表示中1的数量。

上代码:

java 复制代码
public int hammingDistance(int x, int y) {
        int s = x ^ y;
        int result = 0;
        while (s != 0) {
            result += s & 1; //s按位与1(按位与&:如果两个相应的二进制都为1,则该位的结果为1,否则为0)
            s = s >> 1;  //s二进制整体右移1位
        }
        return result;
    }
相关推荐
摇滚侠8 分钟前
Spring Boot3零基础教程,响应式编程的模型,笔记109
java·spring boot·笔记
星星的月亮叫太阳30 分钟前
large-scale-DRL-exploration 代码阅读 总结
python·算法
王哈哈^_^43 分钟前
YOLOv11视觉检测实战:安全距离测算全解析
人工智能·数码相机·算法·yolo·计算机视觉·目标跟踪·视觉检测
..Cherry..1 小时前
Etcd详解(raft算法保证强一致性)
数据库·算法·etcd
商汤万象开发者1 小时前
LazyLLM教程 | 第13讲:RAG+多模态:图片、表格通吃的问答系统
人工智能·科技·算法·开源·多模态
YuanDaima20481 小时前
[CrewAI] 第5课|基于多智能体构建一个 AI 客服支持系统
人工智能·笔记·多智能体·智能体·crewai
Lee_yayayayaya2 小时前
本原多项式产生m序列的原理
算法
许长安2 小时前
c/c++ static关键字详解
c语言·c++·经验分享·笔记
蒙奇D索大2 小时前
【11408学习记录】考研英语长难句精析:三步拆解真题复杂结构,轻松攻克阅读难关!
笔记·学习·考研·改行学it
蒙奇D索大2 小时前
【算法】递归的艺术:从本质思想到递归树,深入剖析算法的性能权衡
经验分享·笔记·算法·改行学it