本文主要解析的是力扣第70题“加一”。
本题的一个主要思想就是:把函数输入的数组当作一个普通的数字。
在传入的这个数组去加一,那么很明显,最重要的就是从数组的最后一位进行判断。
该题分为三种情况:
1.遍历所读的各位不等于9。
2.遍历所读的元素为9
3.遍历全部元素都是9
具体解析代码如下:
var plusOne = function(digits) {
for(let i=digits.length-1;i>=0;i--){
if(digits[i]!==9){
digits[i]++
return digits
}
else{
//如果读到的这位是9,那么加一后直接赋值为0。
//设置为0后不return,让循环继续执行进入更前一位并对它进行加一的操作。
digits[i] = 0
}
}
//如果for循环走完最后一个元素还没return出结果,说明digits所有原元素都是9。但都已经处理为0了。
//这个时候就需要在digits首位之前加一个"1"元素,进位。
const res = [1].concat(digits)
return res
};