【每日一題-leetcode】461.漢明距離

461.漢明距離

  1. 漢明距離

難度簡單293

兩個整數之間的漢明距離指的是這兩個數字對應二進制位不同的位置的數目。

給出兩個整數 x 和 y,計算它們之間的漢明距離。

注意: 0 ≤ x, y < 231.

示例:

輸入: x = 1, y = 4

輸出: 2

解釋:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

上面的箭頭指出了對應二進制位不同的位置。
x^y 亦或 求 i 1的個數。
public int hammingDistance(int x, int y) {
    int count = 0;
    int i = x ^ y;
    while(i!=0){
        count += i&1;
        i >>>= 1;
    }
    return count;
}
n&=(n-1) 求1的個數
public int hammingDistance(int x, int y) {
    int count = 0;
    int i = x ^ y;
    while(i!=0){
        count++;
        i &= (i-1);
    }
    return count;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章