本文主要是介绍汉明距离00,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接
汉明距离
题目描述
注意点
- 汉明距离指的是这两个数字对应二进制位不同的位置的数目
解答思路
- 要找到两个数字对应二进制位不同的位置,首先要用到异或运算符,对x和y进行异或计算后,可以得到二进制位不同位置为1其余位置为0的二进制数s,之后再计算s中1的数量即可
代码
class Solution {public int hammingDistance(int x, int y) {// 异或操作,同0异1int s = x ^ y;int res = 0;while(s != 0) {// 按位与,判断最后一位是否为1res += s & 1;// 右移一位,即除以2s = s >> 1;}return res;}
}
关键点
- java中Integer包装类里有bitCount可直接计算二进制数中1的数量
- 异或运算符^,与运算符&,右移运算符>>
这篇关于汉明距离00的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!