Skip to content

Latest commit

 

History

History

461

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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);
    }
};