Leetcode:371. 两整数之和

[Leetcode: 371. 两整数之和]

题目描述

不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。

示例 1:

输入: a = 1, b = 2
输出: 3

示例 2:

输入: a = -2, b = 3
输出: 1

思路

思路1 位操作

异或操作视作低位相加,与右移操作视作进位

代码

代码1

class Solution {
    public int getSum(int a, int b) {
        int addNum = 0;
        int superNum = 0;
        while (b != 0){
            addNum = a ^ b;
            superNum = a & b << 1;
            a = addNum;
            b = superNum;
        }
        return a;
    }
}

复杂度分析

思路1时间复杂度

$O(logn)$

思路1空间复杂度

$O(1)$


文章作者: 小风雷
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小风雷 !
评论
 上一篇
Leetcode:134. 加油站 Leetcode:134. 加油站
[Leetcode: 134. 加油站]题目描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其
2020-05-13
下一篇 
Leetcode:202. 快乐数 Leetcode:202. 快乐数
Leetcode:202. 快乐数题目描述编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到
2020-05-07
  目录