zoukankan      html  css  js  c++  java
  • LeetCode

    Description

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

    Given two integers x and y, calculate the Hamming distance.

    Note:
    0 ≤ x, y < 231.

    Example:

    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.

    Solution

    除了最容易想到的暴力法,还可以用n与n-1按位与的方法

    python版:

    class Solution(object):
        def hammingDistance(self, x, y):
            """
            :type x: int
            :type y: int
            :rtype: int
            """
            xor = x ^ y
            count = 0
            while (xor != 0):
                xor = xor & (xor - 1)
                count = count + 1
            
            return count
    

    cpp版:

    class Solution {
    public:
        int hammingDistance(int x, int y)
        {
            int xor_diff = x ^ y;
            int count = 0;
            while (xor_diff != 0)
            {
                count++;
                xor_diff = xor_diff & (xor_diff-1);
            }
            return count;
        }
    };
    

    Reference:

  • 相关阅读:
    阿凯
    hlg神秘植物--矩阵快速幂
    poj1185炮兵阵地--状态dp
    该怎么办
    hlg2096---状态压缩dp
    这个世界

    第三篇
    LCT板子
    spoj COT
  • 原文地址:https://www.cnblogs.com/gxcdream/p/7500540.html
Copyright © 2011-2022 走看看