力扣面试题 05.06. 整数转换(位运算)

Problem: 面试题 05.06. 整数转换

文章目录

题目描述

思路及解法

1.通过将两个数进行异或 操作求出两个数中不同的位(不同的位异或后为二进制1);

2.统计异或后不同的位的个数(即异或后二进制为1的个数)

复杂度

时间复杂度:

O ( 1 ) O(1) O(1)

空间复杂度:

O ( 1 ) O(1) O(1)

Code

cpp 复制代码
class Solution {
public:
    /**
     * Bit operation
     * @param A Given number
     * @param B Given number
     * @return int
     */
    int convertInteger(int A, int B) {
        int c = A ^ B;
        int diffCount = 0;
        int mask = 1;
        for (int i = 0; i < 32; ++i) {
            if ((c & mask) != 0) {
                diffCount++;
            }
            mask <<= 1;
        }
        return diffCount;
    }
};
相关推荐
Wang201220136 分钟前
LSTM和Transformer对比
人工智能·算法·架构
KingRumn11 分钟前
Linux进程间通信之D-Bus
linux·算法
fufu031113 分钟前
Linux环境下的C语言编程(四十九)
linux·c语言·算法
YGGP20 分钟前
【Golang】LeetCode198. 打家劫舍
算法·leetcode
啊阿狸不会拉杆22 分钟前
《数字图像处理》实验6-图像分割方法
图像处理·人工智能·算法·计算机视觉·数字图像处理
YGGP23 分钟前
【Golang】LeetCode 152. 乘积最大子数组
算法·leetcode
爱学大树锯28 分钟前
171 · 乱序字符串
算法
小李小李快乐不已34 分钟前
栈和堆理论基础
c++·算法·leetcode
最爱吃咸鸭蛋35 分钟前
LeetCode 97
算法·leetcode·职场和发展
core5121 小时前
CatBoost:自带“翻译官”的算法专家
算法·boost·catboost