加一
进位
要解决进位的问题,且连续进位如 [9, 9]
会导致长度变化 [1, 0, 0]
。
function plusOne(digits: number[]): number[] {
let carry = false
digits[digits.length - 1]++
for (let i = digits.length - 1; i >= 0; i--) {
if (carry) digits[i]++
carry = digits[i] > 9
digits[i] %= 10
}
if (carry) digits.unshift(1)
return digits
}