Skip to content

Latest commit

 

History

History
90 lines (72 loc) · 2.21 KB

File metadata and controls

90 lines (72 loc) · 2.21 KB

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

Given two integers x and y, return the Hamming distance between them.

 

Example 1:

Input: x = 1, y = 4
Output: 2
Explanation:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑
The above arrows point to positions where the corresponding bits are different.

Example 2:

Input: x = 3, y = 1
Output: 1

 

Constraints:

  • 0 <= x, y <= 231 - 1

Companies:
Adobe, Amazon, Facebook

Related Topics:
Bit Manipulation

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/hamming-distance/
// Author: github.com/lzl124631x
// Time: O(1)
// Space: O(1)
class Solution {
public:
    int hammingDistance(int x, int y) {
        int ans = 0;
        for (int z = x ^ y; z; z >>= 1) ans += z & 1;
        return ans; 
    }
};

Solution 2.

// OJ: https://leetcode.com/problems/hamming-distance/
// Author: github.com/lzl124631x
// Time: O(1)
// Space: O(1)
class Solution {
public:
    int hammingDistance(int x, int y) {
        int ans = 0;
        for (int z = x ^ y; z; z &= z - 1) ++ans;
        return ans; 
    }
};

Solution 3.

// OJ: https://leetcode.com/problems/hamming-distance/
// Author: github.com/lzl124631x
// Time: O(1)
// Space: O(1)
class Solution {
public:
    int hammingDistance(int x, int y) {
        return __builtin_popcount(x ^ y);
    }
};