最近在刷力扣的题目,遇到这么一题

意思就是输入个整数变成数字数组,在把整数加1再变成数字数组输入出来。题目很简单,思路也很简单,直接转换成数字加1再变成数组输出就好。但是当我自信写下代码提交,这个时候就出现了问题,当输入的数组长度超过了16位,也就是数字长度超过了16位时候16位后面的数据都变成了0,程序报错。
解决方法:放弃用parseInt转换而是采用Bigint转换
(Bigint的用法自行百度,我就不当搬运工了)
附上这题的解决方法:
var plusOne = function(digits) {
var num = BigInt(digits.toString().replace(/,/g, "")) + 1n
return Array.from(num.toString())
};
使用BigInt解决力扣题中大整数加1问题
博客讲述了在力扣(LeetCode)做题时遇到的一个问题,即当处理超过16位的整数时,常规方法导致超出部分变为0。解决方案是利用JavaScript中的BigInt类型进行大整数运算,避免数据丢失。博主提供了具体代码实现,将数字数组加1并返回新的数字数组。
8008

被折叠的 条评论
为什么被折叠?



