持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情
前言
算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!
🙀 作者简介 🙀
大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!
这是我刷第 88/100 道力扣简单题
一、题目描述
给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。
示例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. 不用加减乘除做加法
二、题目解析
使用位运算:
- 循环使用
&和^- 猛一看,好像很简单,但是仔细一看,会觉得难,因为多数时候我们都是使用
+、-号的,而不是位运算的运算符号,一本人会想不起来,所以这道题就是看起来简单,做起来简单,但是不容易想到的类型,建议多学习一下位运算的相关知识。
三、答案代码
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: