兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。
給出兩個整數 x 和 y,計算它們之間的漢明距離。
注意:0 ≤ x, y < 231.
示例:
輸入: x = 1, y = 4輸出:
2解釋:
1 (000
1)4 (010
0)↑ ↑
上面的箭頭指出了對應二進位制位不同的位置。
思路一
classsolution
n = n >> 1
}
return
count
}}
備註:n = 0001 ^ 0100 = 0101 = 5 , 求韓明距離改為求 二進位制 n = 0101 中 1 的個數。
按位與,n & 1 , 每次可以獲得 n 的最後一位。計數加一。將 n 右移,左邊加0。迴圈
n = 0 時,停止計數。
思路二:效率更高一點
classsolution
return
count
}}
備註:n = n & (n - 1) 一次去掉 n 最後的乙個 1,例如 n = 1100 , n - 1 = 1011, n & (n - 1) = 1000
思路三:nonzerobitcount 函式就是 swift 中,int屬性,變為二進位制後非0個數
classsolution
}
應用:
leetcode 漢明距離
漢明距離 兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數 x 和 y,計算它們之間的漢明距離。注意 0 x,y 231.示例 輸入 x 1,y 4 輸出 2 解釋 1 0 0 0 1 4 0 1 0 0 上面的箭頭指出了對應二進位制位不同的位置。如果存在於其中乙個...
LeetCode 461 漢明距離
兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數x和y,計算它們之間的漢明距離。注意 0 x,y 231.我一直都覺得我自己寫python一股c味兒 import math class solution def hammingdistance self,x,y n ...
LeetCode 461 漢明距離
兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數x和y,計算它們之間的漢明距離。注意 0 x,y 231.示例 輸入 x 1,y 4 輸出 2 解釋 1 0 0 0 1 4 0 1 0 0 上面的箭頭指出了對應二進位制位不同的位置。漢明距離指的是這兩個數字對應二進位...