Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 749 Bytes

66.plus-one.md

File metadata and controls

32 lines (27 loc) · 749 Bytes

加一

题目

思路

原本是打算将数组拼成一个数字, 然后+1后再分拆为数组, 结果会出现数字太大, 超出最大值.

只能用遍历数组的方式去实现. 从数组的最后一位开始 +1, 超过9则前进一位进行+1操作, 直到+1后没超过9, 然后中止, 导出结果.

/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
  let i = digits.length - 1
  let isCarry = true
  while (i > -1 && isCarry) {
    digits[i] = digits[i] + 1
    isCarry = digits[i] > 9
    if (isCarry) {
      digits[i] = 0
      i = i - 1
    }
  }
  if (i === -1 && isCarry) {
    digits.unshift(1)
  }
  return digits
};