【LeetCode刷题】简单-371-两整数之和(一会三过)

115 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情

前言

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

🙀 作者简介 🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

这是我刷第 88/100 道力扣简单题

一、题目描述

给你两个整数 ab不使用 运算符 +- ,计算并返回两整数之和。

示例1:

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

示例2:

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

示例3:

输入:a = 5, b = 6
输出:11

提示:-1000 <= a, b <= 1000

题目链接:371. 两整数之和

相同题目1:面试题 17.01. 不用加号的加法

相同题目2:剑指 Offer 65. 不用加减乘除做加法

二、题目解析

思路:\color{green}{思路:}

使用位运算:

  • 循环使用&^
  • 猛一看,好像很简单,但是仔细一看,会觉得难,因为多数时候我们都是使用+-号的,而不是位运算的运算符号,一本人会想不起来,所以这道题就是看起来简单,做起来简单,但是不容易想到的类型,建议多学习一下位运算的相关知识。

三、答案代码

int getSum(int a, int b){
    int c;
    while (b)
    {
        c = (unsigned int)(a & b) << 1;  //左移防止溢出
        a = a ^ b;
        b = c;
    }
    return a;
}

结语

坚持最重要,每日一题必不可少!:smile_cat:

期待你的关注和督促!:stuck_out_tongue:

在这里插入图片描述