while ( A 没完 || B 没完)
A 的当前位
B 的当前位
和 = A 的当前位 + B 的当前位 + 进位carry
当前位 = 和 % 10;
进位 = 和 / 10;
判断还有进位吗
代码
var addToArrayForm = function (num, k) {
let i = num.length - 1;
let sum = 0;
let carry = 0;
let res = [];
while (i >= 0 || k !== 0) {
let x = i >= 0 ? num[i] : 0;
let y = k !== 0 ? k % 10 : 0;
sum = x + y + carry;
res.push(sum % 10)
carry = Math.floor(sum / 10);
i--;
k = Math.floor(k / 10);
}
if(carry) res.push(carry)
return res.reverse();
}
思路:
套用加法模版:
while ( A 没完 || B 没完) A 的当前位 B 的当前位 和 = A 的当前位 + B 的当前位 + 进位carry 当前位 = 和 % 10; 进位 = 和 / 10; 判断还有进位吗
代码
复杂度
时间:O(N) 空间:O(1)