LeetCode371_371. 两整数之和

LeetCode371_371. 两整数之和

一、描述

给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。

示例 1:

输入:a = 1, b = 2
输出:3

示例 2:

输入:a = 2, b = 3
输出:5

提示:

-1000 <= a, b <= 1000

二、题解

方法一:使用BigInteger类

    /**
     * java中自带BigInteger类,可以把int数值转为String类型;
                    然后使用BigInteger的 public BigInteger(String val)构造方法new出BigInteger对象;
          	调用BigInteger的add方法,然后把结果转为int类型。
     * @param a
     * @param b
     * @return
     */
    //这种方式运行时候,注意导入包  import java.math.BigInteger;
    /*
    执行结果:通过
    执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
    内存消耗:38.2 MB, 在所有 Java 提交中击败了54.35%的用户
    通过测试用例:26 / 26
     */
    public int getSum(int a, int b) {
        BigInteger a1 = new BigInteger(String.valueOf(a));
        BigInteger b1 = new BigInteger(String.valueOf(b));
        int sum = a1.add(b1).intValue();
        return sum;
    }

方法二:使用位操作符

    /**
     * 使用位操作符号,按位异或进行的是不进位加法,按位与是进行的判断是否有进位
     * @param a
     * @param b
     * @return
     */
    /*
    执行结果:通过
    执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
    内存消耗:38.2 MB, 在所有 Java 提交中击败了66.79%的用户
    通过测试用例:26 / 26
     */
    public int getSum2(int a, int b) {
        while (b != 0) {
            int temp = a ^ b;
            b = (a & b) << 1;
            a = temp;
        }
        return a;
    }

LeetCode 367. 有效的完全平方数
LeetCode 371. 两整数之和
LeetCode 383. 赎金信
LeetCode 387. 字符串中的第一个唯一字符
LeetCode 389. 找不同
LeetCode 404. 左叶子之和
LeetCode 412. Fizz Buzz
LeetCode 414. 第三大的数
LeetCode 415. 字符串相加
LeetCode 434. 字符串中的单词数



声明:
        题目版权为原作者所有。文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接

你可能感兴趣的:(LeetCode,算法,数据结构,leetcode)