算法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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录