Leecode刷题笔记——371. 两整数之和

Leecode刷题笔记——371. 两整数之和_第1张图片
思路如下:
1、加法运算,分为两部分,一个是同一位上两个数字和得到的各位,一个是进位。
2、二进制算法中,异或^可以用来表示相加得到的个位,与&、左移1位可以用来表示进位
3、通过两个数不断地异或运算,直到进位为零时,即可算出最后的和
4、二进制加法

class Solution {
    public int getSum(int a, int b) {
    //进位为0则退出循环
    while(b!=0){
    	//异或求低位
        int low=a^b;
        //求进位
        int carrier=(a&b)<<1;
        //重新计算a、b
        a=low;
        b=carrier;
    }
    return a;
    }
}

原题地址:
371. 两整数之和

你可能感兴趣的:(LeeCode刷题总结)