加一
七崽爱吃小饼干2026/01/21阅读 0
加一
给定一个表示 大整数 的整数数组 digits,其中 digits[i] 是整数的第 i 位数字。这些数字按从左到右,从最高位到最低位排列。这个大整数不包含任何前导 0。
将大整数加 1,并返回结果的数字数组。
示例 1:
codeType
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
加 1 后得到 123 + 1 = 124。
因此,结果应该是 [1,2,4]。
示例 2:
codeType
输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
加 1 后得到 4321 + 1 = 4322。
因此,结果应该是 [4,3,2,2]。
示例 3:
codeType
输入:digits = [9]
输出:[1,0]
解释:输入数组表示数字 9。
加 1 得到了 9 + 1 = 10。
因此,结果应该是 [1,0]。
提示:
- 1 <= digits.length <= 100
- 0 <= digits[i] <= 9
- digits 不包含任何前导 0。
解法
ts
function plusOne(digits: number[]): number[] {
// 直接从最后一位开始加1即可,主要是需要注意进位
const n = digits.length
let carry = 1 // 进位,初始进位设为1
for(let i = n - 1; i >= 0; i--){
let num = digits[i] + carry
digits[i] = num % 10
carry = Math.floor(num / 10)
}
// 处理超出数组长度的进位
if(carry) digits.unshift(carry)
return digits
};