leetcode D1 Hamming Distance

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 下面就一行就别加{}了,似乎是影响运行时间么?

你可能感兴趣的:(leetcode D1 Hamming Distance)