力扣-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;
    }
};
相关推荐
爱学大树锯3 分钟前
171 · 乱序字符串
算法
小李小李快乐不已9 分钟前
栈和堆理论基础
c++·算法·leetcode
最爱吃咸鸭蛋10 分钟前
LeetCode 97
算法·leetcode·职场和发展
core51237 分钟前
CatBoost:自带“翻译官”的算法专家
算法·boost·catboost
YGGP1 小时前
【Golang】LeetCode 139. 单词拆分
算法·leetcode
wuguan_1 小时前
C#递推算法
算法·c#·递推算法
多米Domi0111 小时前
0x3f第14天 最长公共子序列
算法·深度优先
spssau1 小时前
正交试验设计全解析:从正交表生成到极差与方差分析
数据库·算法·机器学习
minhuan1 小时前
大模型应用:不减性能只减负担:大模型稀疏化技术全景与实践.36
大数据·人工智能·算法
爱学大树锯2 小时前
592 · 查找和替换模式
算法