兩個整數之間的漢明距離指的是這兩個數字對應二進制位不同的位置的數目。
給出兩個整數 x 和 y,計算它們之間的漢明距離。
注意:
0 ≤ x, y < 231.
示例:
輸入: x = 1, y = 4
輸出: 2
解釋:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭頭指出了對應二進制位不同的位置。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/hamming-distance
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
思路
逐位比較末尾的01是否相同,如果一個數字已經被除盡,則剩下的位只有1時不同,因爲內存裏面默認是0
代碼
publicinthammingDistance(int x,int y){int a =0;int b =0;int count =0;while(x !=0&& y !=0){
a = x %2;
x >>=1;
b = y %2;
y >>=1;if(a != b)
count++;}while(x !=0){
a = x %2;if(a ==1)
count++;
x >>=1;}while(y !=0){
b = y %2;if(b ==1)
count++;
y >>=1;}return count;}