Java实现 LeetCode 371 两整数之和
2024-08-22 21:44:09
371. 两整数之和
不使用运算符 + 和 - ,计算两整数 a 、b 之和。
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
PS:
sum = a ^ b; //异或这里可看做是相加但是不显现进位,比如5 ^ 3
/*0 1 0 1
0 0 1 1
------------
0 1 1 0
上面的如果看成传统的加法,不就是1+1=2,进1得0,但是这里没有显示进位出来,仅是相加,0+1或者是1+0都不用进位*/
carry = (a & b) << 1;
//相与为了让进位显现出来,比如5 & 3
/* 0 1 0 1
0 0 1 1
------------
0 0 0 1
上面的最低位1和1相与得1,而在二进制加法中,这里1+1也应该是要进位的,所以刚好吻合,但是这个进位1应该要再往前一位,所以左移一位*/
class Solution {
public int getSum(int a, int b) {
return b == 0 ? a : getSum(a^b,(a&b)<<1);
}
}
最新文章
- c#多态性
- LNMP环境magento常见错误
- springmvc之格式化要显示的小数或者日期。
- UDPClient的用法
- overlay-1
- SparkSQL基础应用(1.3.1)
- easyui dialog
- iOS开发中图片方向的获取与更改
- IE兼容HTML5
- Android UI布局TableLayout
- WP8加入自己定义铃声
- 字符串和整形数组的相互转化(JAVA程序)
- bs4解析要获取被注掉的部分需先将注释符号去掉
- 学习React系列(七)——Fragments、Portals、Error Boundaries与WEB组件
- 玩转spring MVC(九)---Spring Data JPA
- LeetCode--458--可怜的小猪
- TouchSlide 插件参数
- Import VMware ESXi from VirtualBox
- sencha touch 2.3.1 list emptyText不显示
- Border属性的各种变化