Skip to content

Latest commit

 

History

History
55 lines (43 loc) · 1.3 KB

371.md

File metadata and controls

55 lines (43 loc) · 1.3 KB

✏️Leetcode之PHP版题目解析(371. Sum of Two Integers)

2019-04-25 吴亲库里 库里的深夜食堂


✏️描述

这道题让我们求两数之和,但是不能使用+-运算符


✏️题目实例

✏️题目分析

其实就是用异或算不带进位的和,用与并左移一位来算进位数,然后两者相加。


     /**
         * @param Integer $a
         * @param Integer $b
         * @return Integer
         */
        function getSum($a, $b) {
                return $b==0? $a:$this->getSum($a^$b, ($a&$b)<<1); 
        }

如果这样看着难受,那用迭代

/**
     * @param Integer $a
     * @param Integer $b
     * @return Integer
     */
    function getSum($a, $b) {
        while($b){
            $res=($a & $b)<<1;
            $a=$a ^ $b;
            $b =$res;
        }
        return $a;
    }

联系