首页 > 编程语言 >461. 汉明距离 ------ 位运算,二进制,异或求不同、内置函数、Brian Kernighan 算法

461. 汉明距离 ------ 位运算,二进制,异或求不同、内置函数、Brian Kernighan 算法

时间:2022-11-15 13:55:54浏览次数:53  
标签:Kernighan int 461 ret Brian 异或 汉明 return

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

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

 

示例 1:

输入:x = 1, y = 4
输出:2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
示例 2:

输入:x = 3, y = 1
输出:1
 

提示:

0 <= x, y <= 231 - 1

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/hamming-distance
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

异或运算:

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

 

调用内置函数:

class Solution {
public:
    int hammingDistance(int x, int y) {
        return __builtin_popcount(x ^ y);
    }
};

 

 

Brian Kernighan 算法

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

 

标签:Kernighan,int,461,ret,Brian,异或,汉明,return
From: https://www.cnblogs.com/slowlydance2me/p/16892176.html

相关文章

  • 汉明距离
    两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给你两个整数x和y,计算并返回它们之间的汉明距离。示例1:输入:x=1,y=4输出:2解释:1......
  • ZS_2461_长度为K子数组中的最大和
    思路滑动窗口+Map维护元素出现次数,然后遍历一遍即可求出答案滑动窗口滑动窗口是双指针的一种特例,任意时刻只有一个指针在运动,另一个指针静止,指针包含区域称为窗口......
  • leetcode-461.汉明距离
    461.汉明距离publicinthammingDistance(intx,inty){intz=x^y;//上下俩数都一样为0,不一样为1,得到一个整体intres=0;//当z......
  • CF461B
    设\(f_{u,0/1}\)表示以\(u\)为根的子树,\(u\)所在的联通块内有\(0/1\)个黑点的方案数。设\(v\)为\(u\)当前枚举到的儿子。则转移方程为:\(f_{u,1}=f_{u,1}\tim......
  • acwing 4619. 减法操作
    acwing4619.减法操作原题链接:https://www.acwing.com/problem/content/4622/思路这个题两种操作顺序是先进行哪个操作都是可以的。第一个操作将某个数减2,只要是偶数就......
  • acwing 4618. 两个素数
    两个素数原题链接:https://www.acwing.com/problem/content/4621/思路本来我以为是要判断是不是素数但是y总后来讲的时候,我才发现题目保证一定有解,也就是说x一定会由两......
  • 经典算法学习-计算汉明权重 SWAR(SIMD within a register)
    计算汉明权重算法SWAR(SIMDwithinaregister)参考文章:[1]简书:计算汉明权重的SWAR(SIMDwithinaRegister)算法https://www.jianshu.com/p/b0db1f072a66[2]维基百科:S......
  • 力扣477(java)-汉明距离总和(中等)
    题目: 两个整数的 汉明距离指的是这两个数字的二进制数对应位不同的数量。给你一个整数数组nums,请你计算并返回nums中任意两个数之间汉明距离的总和。 示例1:......
  • 洛谷P4619 [SDOI2018]旧试题
    再做一遍,算是复健一下数论。题目链接Description\(T\)组数据,给出\(A,B,C\),求\[\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^Cd(ijk)\]\(d\)表示正因子个数。答案对\(P=1......