加一 初级算法 递归 return 返回值的坑

加一 初级算法

	var plusOne = function (digits) {
      let n = digits.length - 1;
      const res = ten(n, digits);
      console.log(res);
      return res;
    };

    function ten(idx, digits) {
      if (digits[idx] < 9) {
        digits[idx] += 1;
        return digits;
      } else if (digits[idx] == 9) {
        digits[idx] = 0;
        if (idx != 0) {
          // 递归调用 ten 时,注意加上 return;否则最后 return 的结果 res 接收不到(undefined)
          // 递归容易忘记 忽略掉的坑,要记住。
          return ten(idx - 1, digits);
        }
        digits.unshift(1);
        console.log(digits);
        return digits;
      }
    }
    plusOne([9, 9, 9]);

你可能感兴趣的:(算法,leetcode,职场和发展)