leetcode.com/problems/hamming-distance/
求汉明距离,首先通过x^y(一样的变为0不一样变为1)转化为二进制,同时得到对应位置不同的二进制数列。int xor=x^y;(xor>>i)是将xor的二进制数列向右移动i位。(xor>>i)&1 只有在右移过程中最后一位为1,也就是xy两个二进制对应不同数字时才会为1 通过count+=(xor>>i)&1 可以计数。
public class Solution {
public int hammingDistance(int x, int y) {
int xor=x^y;
int count=0;
for(int i=0;i<32;i++)
count+=(xor>>i)&1;
return count;
}
}
for 下面就一行就别加{}了,似乎是影响运行时间么?