随笔 - 384  文章 - 0  评论 - 0  阅读 - 13万

力扣461(java)-汉明距离(简单)

题目:

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

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

 

示例 1:

输入:x = 1, y = 4
输出:2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
示例 2:

输入:x = 3, y = 1
输出:1
 

提示:

0 <= x, y <= 231 - 1

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/hamming-distance
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

循环遍历二进制数,每次对两个数进行移位,然后进行异或运算,不同就加1。

& :按位与, 两个都是1结果就为1,否则结果为0;

^ :按位异或,只要两个二进制位相同就为0,不同为1。

代码:

复制代码
 1 class Solution {
 2     public int hammingDistance(int x, int y) {
 3         int res = 0;
 4         for(int i = 0; i < 32; i++){
 5             int a = (x >> i) & 1;
 6             int b = (y >> i) & 1;
 7             res += a ^ b;
 8         }
 9         return res;
10     }
11 }
复制代码

posted on   我不想一直当菜鸟  阅读(56)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示