JavaScript数组(leetcode题④)——加一

132 阅读1分钟
  • 这道题一开始我也理解只是单纯的数组的最后一位数加1,其实并非如此

我理解的要求是这样的:

  1. 只要不是碰到单个数字为9的,都可以直接加1,比如说两位数字含9的也直接加一
  2. 如果碰到单个数字为9,比如说[9]、[9,9,9]、那么按进位的形式得到新的数组[9]对应为[1,0],[9,9,9]对应为[1,0,0,0]
  3. 代码如下:
    var plusOne = function (digits) {
    let digit = []
    for (let i = digits.length - 1; i >= 0; i--) { //从数组的最后一位数开始遍历
      if (digits[i] !== 9) { //判断是否为单个数9
        digits[i] = digits[i] + 1
        return digits
      }
      else {
        digits[i] = 0 //为9则将最后一位数设为0
      }
    }
    digit.unshift(1) //新数组第一位设为1
    return [...digit, ...digits] //用扩展运算符进行数组结合
  };