【javascript算法刷题系列】力扣70题:加一

256 阅读1分钟

本文主要解析的是力扣第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
};