力扣-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;
    }
};
相关推荐
大千AI助手1 分钟前
多维空间的高效导航者:KD树算法深度解析
数据结构·人工智能·算法·机器学习·大千ai助手·kd tree·kd树
凋零蓝玫瑰11 分钟前
几何:数学世界的空间密码
人工智能·算法·机器学习
LDG_AGI20 分钟前
【推荐系统】深度学习训练框架(九):推荐系统与LLM在Dataset、Tokenizer阶段的异同
人工智能·深度学习·算法·机器学习·推荐算法
爪哇部落算法小助手24 分钟前
每日两题day61
数据结构·c++·算法
Swift社区25 分钟前
LeetCode 439 - 三元表达式解析器
算法·leetcode·ssh
小殊小殊25 分钟前
重磅!DeepSeek发布V3.2系列模型!
论文阅读·人工智能·算法
裤裤兔26 分钟前
利用matlab进行FDR校正的实现方式
数据结构·算法·matlab·多重比较矫正·校正·fdr
野蛮人6号27 分钟前
力扣热题100道之31下一个排列
算法·leetcode·职场和发展
子一!!27 分钟前
哈希桶,元素插入逻辑实现
算法·哈希算法
敲代码的嘎仔28 分钟前
LeetCode面试HOT100——160. 相交链表
java·学习·算法·leetcode·链表·面试·职场和发展