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 的 最少位翻转 次数。

相关推荐
一刀到底21117 分钟前
java 多核,多线程,分布式 并发编程的现状 :从本身的jdk ,到 spring ,到其它第三方。
java·分布式·高并发
Kendra91923 分钟前
Docker 容器 - Dockerfile
java·docker·eureka
Auc2440 分钟前
Java 原生实现代码沙箱(OJ判题系统第1期)——设计思路、实现步骤、代码实现
java·开发语言·python
livemetee1 小时前
netty单线程并发量评估对比tomcat
java·tomcat·netty
lyrhhhhhhhh1 小时前
Spring框架(1)
java·后端·spring
熊猫的反手凶变直线1 小时前
Java-Lambda 表达式
java·开发语言·windows·笔记
Super_man541881 小时前
k8s之service解释以及定义
java·开发语言·云原生·容器·kubernetes
fie88891 小时前
Java中的控制流语句:if、switch、for、foreach、while、do-while
java·开发语言·python
秦少游在淮海1 小时前
leetcode - 双指针问题
算法·leetcode
找不到、了2 小时前
JDK8 HashMap红黑树退化为链表的机制解析
java·数据结构·链表