461、漢明距離
2つの整数間のハミング距離は、この2つの数字がバイナリビットの異なる位置に対応する数を指す.2つの整数xとyを与え,それらの間のハミング距離を計算した.
注意:0≦x,y<231.
例:
入力:x=1、y=4
出力:2
1(0 0 0 0 1)4(0 1 0 0)↑↑
上の矢印は、対応するバイナリビットの異なる位置を示しています.
リンク:https://leetcode-cn.com/problems/hamming-distance
注意:0≦x,y<231.
例:
入力:x=1、y=4
出力:2
1(0 0 0 0 1)4(0 1 0 0)↑↑
上の矢印は、対応するバイナリビットの異なる位置を示しています.
class Solution1 {
public:
int hammingDistance(int x, int y) { //
return bitset<32>(x^y).count();
}
};
class Solution {
public:
int hammingDistance(int x, int y) { // 1
int dis = x ^ y;
int count = 0;
while (dis)
{
dis &= dis - 1;
count++;
}
return count;
}
};
リンク:https://leetcode-cn.com/problems/hamming-distance