https://leetcode-cn.com/problems/plus-one/
点击查看【bilibili】
题目
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
示例
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
输入:digits = [0]
输出:[1]
解答
- 从最后一位开始循环
- 如果当前为不是9,直接加1,然后返回结果
- 如果当前为是9,把当前位变成0,继续循环,重复第2步
- 考虑全是9的情况 [9,9],如果都是9那么所有位数都会变成0,也不会返回结果
-
答案
var plusOne = function(digits) { // 倒序循环 for(let i=digits.length-1;i>=0;i--) { // 如果当前位不是9,加1,返回结果 if(digits[i] !== 9) { digits[i]++; return digits; // 如果当前位是9,当前位变成0,循环继续 }else { digits[i] = 0; } } console.log(digits) // 处理 全是9的情况,[9,9,9] const result = [1, ...digits]; return result };