做百度手机网站快速排,百度推广入口登录,个体户做网站有用吗,企业网站在ps里做吗文章目录 Add Two Integers 两整数相加问题描述#xff1a;分析代码递归 Tag Add Two Integers 两整数相加
问题描述#xff1a;
给你两个整数 num1 和 num2#xff0c;返回这两个整数的和。 − 100 n u m 1 , n u m 2 100 -100 num1, num2 100 −1… 文章目录 Add Two Integers 两整数相加问题描述分析代码递归 Tag Add Two Integers 两整数相加
问题描述
给你两个整数 num1 和 num2返回这两个整数的和。 − 100 n u m 1 , n u m 2 100 -100 num1, num2 100 −100num1,num2100
分析
呃解决这个问题一行代码就可以。而且时间复杂度和空间复杂度都是 O ( 1 ) O(1) O(1)
而这个问题的升级版就是不用算术运算符完成2数相加,这个就有点意思了。
如果不使用算术运算符就需要借助二进制来模拟进行二进制数的加法。 在二进制的情况下加法主要使用位运算符来处理。
具体的看代码实现,涉及到 移位异或运算。
代码
递归 public int sum(int num1, int num2) {if (num1 0) {return num2;}int carry (num1 num2) 1;int remain num1 ^ num2;return sum(carry, remain);} 时间复杂度 O ( l o g C ) O(logC) O(logC)
空间复杂度 O ( l o g C ) O(logC) O(logC)
Tag
Math