本文共 520 字,大约阅读时间需要 1 分钟。
原贴地址:
两个整数之间的指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
注意:
0 ≤x
, y
< 231. 示例:
输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。
通过观察可以得出,给入两个数字,我们输出的答案就是这两个数字在二进制位上的不同点,也就是说,只有在对应二进制位不一样的时候我们就统计这个位,既然是这样我们可以异或一下赋值给一个新变量,再统计这个新变量里有多少个1即可。
class Solution {public: int hammingDistance(int x, int y) { return __builtin_popcount(x ^ y); }};
impl Solution { pub fn hamming_distance(x: i32, y: i32) -> i32 { (x ^ y).count_ones() as i32 }}
转载地址:http://rkuci.baihongyu.com/