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%哈哈哈
就是这恶心的精度问题,逼我用 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))
}