TypeScript刷LeetCode[7] 989. 数组形式的整数加法

1/22/2021 TypeScriptLeetCode算法

# 题目

难度:简单

对于非负整数X而言,X的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果X = 1231,那么其数组形式为[1,2,3,1]

给定非负整数X的数组形式A,返回整数X+K的数组形式。

示例 1:

输入:A = [1,2,0,0], K = 34
输出:[1,2,3,4]
解释:1200 + 34 = 1234

示例 2:

输入:A = [2,7,4], K = 181
输出:[4,5,5]
解释:274 + 181 = 455

示例 3:

输入:A = [2,1,5], K = 806
输出:[1,0,2,1]
解释:215 + 806 = 1021

示例 4:

输入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
输出:[1,0,0,0,0,0,0,0,0,0,0]
解释:9999999999 + 1 = 10000000000

提示:

  • 1 <= A.length <= 10000
  • 0 <= A[i] <= 9
  • 0 <= K <= 10000
  • 如果 A.length > 1,那么 A[0] != 0

# 代码

喜提时空 100%哈哈哈 image.png

就是这恶心的精度问题,逼我用 BigInt

然后 LeetCode 里类型提示还有问题,只能调globalThis的 BigInt

function addToArrayForm(A: number[], K: number): number[] {
    let N = ''
    A.forEach(e => (N = N + e))
    return String(globalThis.BigInt(N) + globalThis.BigInt(K))
        .split('')
        .map(e => Number(e))
}

点击刷本题吊打我 (opens new window)