• 461. Hamming Distance


    /**
     * 461. Hamming Distance
     * https://leetcode.com/problems/hamming-distance/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 < 2的31次方.
    
    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.
     *
     * 我们先了解下位运算,包括:
     * & (与) : 1和1为1,其余为0;
     * | (或) : 有1为1,零零为0;
     * ^ (异或): 相同的为0,不同的为1;
     * ~ (取反): 按位取反;
     * >> (右移): 右移n位等于除于2的n次方;
     * << (左移): 左移n位等于乘于2的n次方;
     *
     * */
    class Solution {
        fun hammingDistance(x: Int, y: Int): Int {
            val exc = x xor y
            //calculate the number of 1
            return exc.toString(2).count { it == '1' }
        }
    }

    class Solution2 {
        fun hammingDistance(x_: Int, y_: Int): Int {
            var result = 0
            var x = x_
            var y = y_
            while (x > 0 || y > 0) {
                result += (x xor y) and 1
                x = x shr 1 //除于2
                y = y shr 1
            }
            return result
        }
    }
    
    
    
     
  • 相关阅读:
    Web后台框架 目录
    C++ 目录
    【花书笔记】线性代数
    【Python数据挖掘概念、方法与实践】
    【统计学习基础】2. Overview of Supervised Learning
    字节与16进制
    【西瓜书】线性模型
    MySQL入门经典
    【机器学习基石】感知机模型
    python:web应用程序
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/12399452.html
Copyright © 2020-2023  润新知