327 字
2 分钟
Leetcode->加一
题目
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/plus-one
示例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
解题:tada:
思路
TIP此题,只需要给最后一位加一,也就是数组的最后一个元素,问题在于如果这个数字刚好是9的话,会出现进位,所以我们只需要解决这个问题即可
刚开始脑子一热,居然想先转为字符串然后在处理,最后发现有点画蛇添足
代码
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function(digits) {
const len = digits.length;
for(let i = len - 1; i >= 0; i--) {
digits[i]++;
//如果超过10,则需要进位
digits[i] %= 10;
if(digits[i]!=0)
//说明不需要再进位了
return digits;
}
//各项都进位了,只需各项+1然后%10之后,在前面补1
digits = [1,...digits]
return digits;
};
Leetcode->加一
https://blog.oceanh.top/posts/algorithm/加一/