• Java实现 LeetCode 371 两整数之和


    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); 
        }
    }
    
  • 相关阅读:
    工作笔记之20170223:①关于Html5的placeholder属性,②以及input的outline:none的样式问题
    工作笔记之:如何在eclipse安装CVS插件?找了很久的,自己总结一下
    ajax后台请求两种方法(js和jQuery)
    22
    21
    20
    19
    18
    17
    16
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075160.html
Copyright © 2020-2023  润新知