首页 > 编程语言 >LeetCode刷题(43)~汉明距离【异或+布赖恩·克尼根算法】

LeetCode刷题(43)~汉明距离【异或+布赖恩·克尼根算法】

时间:2023-01-12 15:33:00浏览次数:49  
标签:count int 克尼根 43 二进制位 num 汉明


题目描述

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数 x 和 y,计算它们之间的汉明距离。

注意:
0 ≤ x, y < 231.

示例:

输入: x = 1, y = 4

输出: 2

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

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

解答 By 海轰

提交代码(异或,再寻找1的个数,其实就是判断除2后余数是否为1)

int hammingDistance(int x, int y) {
int num=x^y;
int count=0;
while(num)
{
if(num%2==1)
count++;
num/=2;
}
return count;
}

运行结果

LeetCode刷题(43)~汉明距离【异或+布赖恩·克尼根算法】_汉明距离

解答

布赖恩·克尼根算法

int hammingDistance(int x, int y) {
int num=x^y;
int count=0;
while(num)
{
++count;
num=num&(num-1);
}
return count;
}

运行结果

LeetCode刷题(43)~汉明距离【异或+布赖恩·克尼根算法】_提交代码_02


标签:count,int,克尼根,43,二进制位,num,汉明
From: https://blog.51cto.com/u_15939722/6004367

相关文章

  • LeetCode刷题(45)~位1的个数【布赖恩·克尼根算法】
    题目描述编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为‘1’的个数(也被称为汉明重量)。示例1:输入:00000000000000000000000000001011输出:3解释:......
  • Codeforces Round #843 (Div. 2)(B,C,D,E)
    CodeforcesRound#843(Div.2)(B,C,D,E)23年的第一场比赛(现场的),结果还是只是做出了两个题B想起这道题就好笑,我又又又看错题了,这个题里面讲的一直是或,我在比赛全程都以为是......
  • Codeforces Round #843 (Div. 2)ACE 补D
    A.GardenerandtheCapybaras题意:给定一个由ab串,将该字符串拆分成3个部分,使中间部分的字典序最大或者最小。分析:考虑简单的最小情况:中间只有一个a,两边总会\(......
  • Codeforces Round #843 (Div. 2)
    Preface难得的7点场CF,结果反而遇上了我最困的时候(吃完晚饭血糖上来就贼困,我一般反而凌晨场比较清醒)但是这场表现还可以,写的题基本都是一发入魂而且速度也比较快比较可惜......
  • Codeforces Round #843 (Div. 2)
    A-GardenerandtheCapybaras题意给出字符串S,S只由字符a,b组成,问怎么切分可以使字符串分为小大小,大小大这种的三段。思路在2~n-1的范围内找到字符a的位置,如果里......
  • Codeforces Round #843 (Div. 2)
    题目链接Atag:构造,分类讨论核心思路我们其实可以发现我们要是分很多情况去讨论abc,这题就不好做。所以我们可以假设a和b就是我们字符串的两个端点,这样题目就很好做了......
  • Codeforces Round #843 (Div. 2) Problem C
    C.InterestingSequencetimelimitpertest1secondmemorylimitpertest256megabytesinputstandardinputoutputstandardoutput  Petyaandhisfr......
  • 拉取git时报错Failed to connect to github.com port 443 : Timed out
    一、问题描述报错如下图:二、问题分析git所设端口与系统代理不一致,需重新设置。三、解决方法打开设置>网络与Internet>代理。记录下当前系统代理的IP地址和端口......
  • 电子设计教程43:流水灯电路-非对称式多谐振荡器
      接下来几篇将做一个流水灯电路,本文是流水灯电路的第一节,介绍用反相器产生非对称式多谐振荡器。  流水灯电路将以一定的速度来“流水”,必然需要周期变化的脉冲信号作为......
  • 一个CF1775C(Codeforces Round #843 (Div. 2))的小技巧
    若\(n\)的第\(i\)位为\(1\),而我们需要不断令\(n+1\)找到下一个最小的\(k\),使得\(k\)的第\(i\)位为\(0\)。技巧:假设\(n\)为10101[1]1001,括号内是要求的第\(i\)位那么先......