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

相关推荐
汉字萌萌哒31 分钟前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
喜欢的名字被抢了44 分钟前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
数据知道1 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
Navigator_Z2 小时前
LeetCode //C - 1192. Critical Connections in a Network
c语言·算法·leetcode
2601_949950632 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
無限進步D2 小时前
Java 函数式编程(Lambda)
java·开发语言
rannn_1112 小时前
【力扣hot100】链表专题下|138、148、23、146
java·算法·leetcode·链表·开发
lv__pf2 小时前
Spring配置类解析 【TL spring 11】
java·前端·spring
zhougl9963 小时前
Java Spring Boot 爬虫技术全面介绍
java·spring boot·爬虫
奥莱维3 小时前
【无标题】
java·前端·javascript