输入两个整数-a-bab输出它们的和ab-le-10^9∣a∣∣b∣≤10-n9n-。
算法1:
直接将两个整数相加即可。
时间复杂度: $O(1)$
C++ 代码
class Solution { public: int add(int a, int b) { return a + b; } };
算法2:
位运算实现加法。
分两步实现:先用异或运算得到两个数没有进位的和,再用与运算得到进位的位置,将进位的位置左移一位,在与没有进位的和相加,直到进位为0。
时间复杂度: $O(1)$
C++ 代码
class Solution { public: int add(int a, int b) { while (b != 0) { int sum = a ^ b; int carry = (a & b) << 1; a = sum; b = carry; } return a; } };
原文地址: http://www.cveoy.top/t/topic/nyK 著作权归作者所有。请勿转载和采集!