力扣-461.汉明距离

Method 1

直接比较x,y二进制中的每一位,如果不同则cnt加一,并且x,y每次右移一位

cpp 复制代码
class Solution {
public:
    int hammingDistance(int x, int y) {
        int cnt = 0;
        while(x > 0 && y > 0) {
            if((x & 1) != (y & 1)) cnt++;
            x >>= 1;
            y >>= 1;
        }
        while(x > 0) {
            if(x & 1) cnt++;
            x >>= 1;
        }
        while(y > 0) {
            if(y & 1) cnt++;
            y >>= 1;
        }
        return cnt;
    }
};

Method 2

使用异或运算,当二进制位相同时为1,不同时为0

cpp 复制代码
class Solution {
public:
    int hammingDistance(int x, int y) {
        int cnt = 0;
        int s = x ^ y;
        while(s > 0) {
            cnt += s & 1;
            s >>= 1;
        }
        return cnt;
    }
};
相关推荐
风中的微尘2 小时前
39.网络流入门
开发语言·网络·c++·算法
西红柿维生素3 小时前
JVM相关总结
java·jvm·算法
ChillJavaGuy5 小时前
常见限流算法详解与对比
java·算法·限流算法
sali-tec5 小时前
C# 基于halcon的视觉工作流-章34-环状测量
开发语言·图像处理·算法·计算机视觉·c#
你怎么知道我是队长6 小时前
C语言---循环结构
c语言·开发语言·算法
艾醒6 小时前
大模型面试题剖析:RAG中的文本分割策略
人工智能·算法
纪元A梦9 小时前
贪心算法应用:K-Means++初始化详解
算法·贪心算法·kmeans
_不会dp不改名_9 小时前
leetcode_21 合并两个有序链表
算法·leetcode·链表
mark-puls9 小时前
C语言打印爱心
c语言·开发语言·算法
Python技术极客9 小时前
将 Python 应用打包成 exe 软件,仅需一行代码搞定!
算法