您的位置:首页 > 其它

【leetcode】【Easy】【461. Hamming Distance】【bit manipulation】

2017-01-14 18:31 344 查看
problem link:https://leetcode.com/problems/hamming-distance/

code:

效率从高到低的三种方法

第一种方法,要知道java中int占用4个字节(char占用2个字节 reference:http://blog.csdn.net/witsmakemen/article/details/8974200),这种类型的题既然位操作就要使用位操作,所以第二种方法要比第一种方法效率低一点。第三种方法用的是java自带的方法。

public int hammingDistance(int x, int y) {
int z=x^y;
int bits=0;

for(int i=0;i<32;i++){
bits+=z&1;
z=z>>1;
}

return bits;

}

public int hammingDistance(int x, int y) {
int z=x^y;
int bits=0;

while(z!=0){
bits+=z%2;
z=z>>1;//比除以2效率要高很多
}

return bits;
}

public int hammingDistance(int x, int y) {
return Integer.bitCount(x ^ y);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: