Day35汉明距离

两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x 和 y,计算并返回它们之间的汉明距离。

java 复制代码
class Solution {
    public int hammingDistance(int x, int y) {
        int cnt = 0;
        while (Math.max(x, y) != 0) {
            if ((x & 1) != (y & 1)) {
                cnt++;
            }
            x = x >> 1;
            y = y >> 1;
        }
        return cnt;
    }
}

时间复杂度:O(logn),空间复杂度:O(1)。

本题和 2220.转换数字的最少位翻转次数 一样

一次 位翻转 定义为将数字 x 二进制中的一个位进行 翻转 操作,即将 0 变成 1 ,或者将 1 变成 0 。
比方说,x = 7 ,二进制表示为 111 ,我们可以选择任意一个位(包含没有显示的前导 0 )并进行翻转。比方说我们可以翻转最右边一位得到 110 ,或者翻转右边起第二位得到 101 ,或者翻转右边起第五位(这一位是前导 0 )得到 10111 等等。
给你两个整数 start 和 goal ,请你返回将 start 转变成 goal 的 最少位翻转 次数。

相关推荐
回忆是昨天里的海5 分钟前
k8s集群-节点间通信之安装kube-flannel插件
java·docker·kubernetes
信仰_27399324317 分钟前
Mybatis-Spring重要组件介绍
java·spring·mybatis
盖世英雄酱5813617 分钟前
java深度调试【第二章通过堆栈分析性能瓶颈】
java·后端
没有bug.的程序员27 分钟前
AOP 原理深剖:动态代理与 CGLIB 字节码增强
java·spring·aop·动态代理·cglib
2401_8370885028 分钟前
ResponseEntity - Spring框架的“标准回复模板“
java·前端·spring
坚持编程的菜鸟1 小时前
LeetCode每日一题——二进制求和
c语言·算法·leetcode
lang201509281 小时前
Spring Boot RSocket:高性能异步通信实战
java·spring boot·后端
默默coding的程序猿1 小时前
1.北京三维天地公司-实施实习生
java·sql·技术支持·面经·实施·实施工程师·三维天地
天天摸鱼的java工程师2 小时前
解释 Spring 框架中 bean 的生命周期:一个八年 Java 开发的实战视角
java·后端
尤老师FPGA2 小时前
LVDS系列32:Xilinx 7系 ADC LVDS接口参考设计(三)
android·java·ui