-
给定一个由整数组成的非空数组表示的非负整数,在该数的基础上加一。最高位数字放在数组的首位,数组中每个元素只存储单个数字。
- 你可以假设除了整数0之外,这个整数不会以0开头。 示例1
输入:digits = [1,2,3] 输出:[1,2,4] 解释:输入数组表示数字 123。示例2
输入:digits = [4,3,2,1] 输出:[4,3,2,2] 解释:输入数组表示数字 4321。提示:
- 1 <= digits.length <= 100
- 0 <= digits[i] <= 9 解题
// 从后往前遍历数组,如果没有9则加1返回数组, // 有9则变成0, 以此类推继续往前遍历 // 如果首位仍是9,数组长度加1,所有值改成0,首位改成1, 返回数组 const plusOne = (digits) => { for (let i = digits.length; i >= 0; i--) { // 没有9则加1返回数组 if (digits[i] < 9) { let j = digits[i] + 1; digits[i] = j; return digits; } else if(digits[i] === 9 && i > 0) { // 有9则变成0,以此类推继续往前遍历 digits[i] = 0; } else if (digits[a] === 9 && a === 0) { // 如果首位仍是9 digits.length += 1; // fill() 方法用于将一个固定值替换数组的元素。array.fill(value, start, end) digits.fill(0); digits[0] = 1; return digits; } } } console.log(plusOne([1, 2, 3]));