LeetCode 461. 漢明距離

吃著火鍋x唱著歌發表於2020-11-11

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

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

注意:
0 ≤ x, y < 231.

利用x & x-1相當於去掉最低位的1即可:

class Solution {
public:
    int hammingDistance(int x, int y) {
        int xorRes = x ^ y;

        int cnt = 0;
        while(xorRes) {
            xorRes &= xorRes - 1;
            ++cnt;
        }

        return cnt;
    }
};

相關文章