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

相关推荐
lkbhua莱克瓦245 分钟前
进阶-SQL优化
java·数据库·sql·mysql·oracle
行稳方能走远12 分钟前
Android java 学习笔记 1
android·java
kaico201813 分钟前
多线程与微服务下的事务
java·微服务·架构
zhglhy13 分钟前
QLExpress Java动态脚本引擎使用指南
java
小瓦码J码15 分钟前
使用AWS SDK实现S3桶策略配置
java
廋到被风吹走18 分钟前
【Spring】Spring Cloud 配置中心动态刷新与 @RefreshScope 深度原理
java·spring·spring cloud
牧小七19 分钟前
springboot 配置访问上传图片
java·spring boot·后端
Swift社区19 分钟前
LeetCode 472 连接词
算法·leetcode·职场和发展
Dream it possible!20 分钟前
LeetCode 面试经典 150_二分查找_搜索旋转排序数组(114_33_C++_中等)
c++·leetcode·面试
涵涵(互关)32 分钟前
JavaScript 对大整数(超过 2^53 - 1)的精度丢失问题
java·javascript·vue.js