力扣-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;
    }
};
相关推荐
star learning white10 小时前
xmC语言8
c语言·开发语言·算法
青小俊10 小时前
【代码随想录c++刷题】-二分查找 移除元素 有序数组的平方 - 第一章 数组 part 01
c++·算法·leetcode
ytttr87310 小时前
基于MATLAB实现晶体共晶凝固模拟
开发语言·算法·matlab
倦王11 小时前
力扣日刷251120
算法·leetcode·职场和发展
F_D_Z11 小时前
【k近邻】Kd树构造与最近邻搜索示例
算法·机器学习·近邻算法·k近邻算法
断剑zou天涯11 小时前
【算法笔记】从暴力递归到动态规划(二)
java·算法·动态规划
RTC老炮11 小时前
webrtc降噪-SpeechProbabilityEstimator类源码分析与算法原理
算法·webrtc
WWZZ202512 小时前
快速上手大模型:深度学习9(池化层、卷积神经网络1)
人工智能·深度学习·神经网络·算法·机器人·大模型·具身智能
Boop_wu12 小时前
[Java EE] 多线程编程初阶
java·jvm·算法
cpp_250113 小时前
P1765 手机
数据结构·c++·算法·题解·洛谷