leetcode416汉明距离

leetcode 416 Hamming Distance

Posted by BY on June 18, 2020

前言

持续更新了

正文

问题来源

本问题来自leetcode上的416题。

问题描述

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。

示例 1:

输入: x = 1, y = 4

输出: 2

解释:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

上面的箭头指出了对应二进制位不同的位置。

分析:

题目的意思就是亦或之后求1的个数。

//import "math/bits"
func hammingDistance(x int, y int) int {
    return bits.OnesCount(uint(x^y))
}

请注意OnesCount的入参类型和返回值类型

func oneCount(x int) int {
    count := 0
    for x != 0 {
        x = x & (x-1)
        count++
    }
    return count
}
func hammingDistance(x int, y int) int {
    return oneCount(x^y)
}

总结:

勤思考。

结语

不管怎么样好好加油。