力扣面试题 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;
    }
};
相关推荐
colus_SEU8 小时前
【编译原理笔记】2.1 Programming Language Basics
c++·算法·编译原理
人工智能培训8 小时前
大模型-去噪扩散概率模型(DDPM)采样算法详解
算法
Excuse_lighttime8 小时前
只出现一次的数字(位运算算法)
java·数据结构·算法·leetcode·eclipse
liu****8 小时前
笔试强训(二)
开发语言·数据结构·c++·算法·哈希算法
无限进步_9 小时前
扫雷游戏的设计与实现:扫雷游戏3.0
c语言·开发语言·c++·后端·算法·游戏·游戏程序
qq_433554549 小时前
C++ 完全背包
开发语言·c++·算法
lingran__9 小时前
算法沉淀第二天(Catching the Krug)
c++·算法
im_AMBER10 小时前
杂记 15
java·开发语言·算法
爱coding的橙子10 小时前
每日算法刷题Day70:10.13:leetcode 二叉树10道题,用时2h
算法·leetcode·深度优先