首页 > 代码库 > 461. Hamming Distance【数学|位运算】
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的个数。
publicclassSolution{
publicint 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,统计循环次数。
publicclassSolution{
publicint hammingDistance(int x,int y){
x ^= y;
int count =0;
while( x !=0){
x &= x -1;
count++;
}
return count;
}
}
461. Hamming Distance【数学|位运算】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。