Leetcode461. ハミング距離
2549 ワード
Leetcode461. ハミング距離
タイトル:2つの整数の間の漢明距離は、この2つの数字がバイナリビットの異なる位置に対応する数を指す.
2つの整数xとyを与え,それらの間のハミング距離を計算した.注意:0≦x,y<231.
例:
問題解:1.組み込み関数bitCount()2を使用します.まず2つの数に対して異を求めたり演算したりして、計算結果のバイナリ形式の中の1つの数scalaコードを求めます.
タイトル:2つの整数の間の漢明距離は、この2つの数字がバイナリビットの異なる位置に対応する数を指す.
2つの整数xとyを与え,それらの間のハミング距離を計算した.注意:0≦x,y<231.
例:
: x = 1, y = 4
: 2
:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
。
問題解:1.組み込み関数bitCount()2を使用します.まず2つの数に対して異を求めたり演算したりして、計算結果のバイナリ形式の中の1つの数scalaコードを求めます.
/**
* bitCount
* bitCount: 1
* @param x
* @param y
* @return
*/
def hammingDistance(x: Int, y: Int): Int = {
Integer.bitCount(x^y)
}
/**
* , 1
* @param x
* @param y
* @return
*/
def hammingDistance2(x: Int, y: Int): Int = {
var count = 0
var a = x ^ y
while (a != 0) {
count = count + 1
a = a & (a - 1)
}
count
}