leetcode-pp / 91alg-9-daily-check

5 stars 0 forks source link

989. 数组形式的整数加法 #9

Closed SJ941127 closed 2 years ago

SJ941127 commented 2 years ago

思路:

套用加法模版:

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();
}

复杂度

时间:O(N) 空间:O(1)