461. Hamming Distance

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.

Note:
0 ≤ xy < 231.

Example:

Input: x = 1, y = 4

Output: 2

Explanation:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

The above arrows point to positions where the corresponding bits are different.
含义:求两个数字的汉明距离
思路:先进行按位易或运算,不同的位结果为1,然后计算1个个数
复制代码
 1     public int hammingDistance(int x, int y) {
 2          // return Integer.bitCount(x^y);       
 3           int res = 0, exc = x ^ y;
 4         // for (int i = 0; i < 32; ++i) {
 5         //     res += (exc >> i) & 1;
 6         // }
 7         
 8         while (exc!=0) {
 9             ++res;
10             exc &= (exc - 1); //消除最后一位1
11         }        
12         return res;
13     }
复制代码

 

posted @   daniel456  阅读(116)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示