407. 加一

Description

给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照数位高低进行排列,最高位的数在列表的最前面。

example

给定 [1,2,3] 表示 123, 返回 [1,2,4].
给定 [9,9,9] 表示 999, 返回 [1,0,0,0].

Solution

跟前面的加法题类似。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @param digits: a number represented as an array of digits
* @return: the result
*/
const plusOne = function (digits) {
let stack = digits;
let r = "",i = 0;
while (stack.length > 0){
let p = stack.pop();
if (r === "")p += 1;
p += i;
r = "" + (Math.floor(p%10)) + r;
i = Math.floor(p/10);
}
if (i!==0)r = i + r;
return r.split("").map((i)=>{return parseInt(i);});
}