461. Hamming Distance【数学|位运算】
2017/3/14 15:23:55
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Given two integers x
and y
, calculate the Hamming distance.
题目要求:求两个数字二进制位中同一位置不同bit的个数。
解法1 Java 利用1的移位依次匹配是否对应位为1,统计为1的个数。
1 2 3 4 5 6 7 8 9 | public class Solution { public int hammingDistance( int x, int y) { x ^= y; int count = 0 ; for ( int i= 0 ;i< 32 ;i++ ) count = ( 1 <<i & x ) != 0 ? count+ 1 : count; return count; } } |
解法2 Java 利用 a &= a-1 依次去掉最后一个1,统计循环次数。
1 2 3 4 5 6 7 8 9 10 11 | public class Solution { public int hammingDistance( int x, int y) { x ^= y; int count = 0 ; while ( x != 0 ){ x &= x - 1 ; count++; } return count; } } |
分类:
数据结构与算法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 聊一聊 C#异步 任务延续的三种底层玩法
· 上位机能不能替代PLC呢?
· 2024年终总结:5000 Star,10w 下载量,这是我交出的开源答卷
· 一个适用于 .NET 的开源整洁架构项目模板
· .NET Core:架构、特性和优势详解