lbp的blog

纸上得来终觉浅,绝知此事要躬行

0%

118-杨辉三角

leetcode118

解题思路:

  1. 下标0的都是数据1,所以数组的生成可以从下标1开始
  2. 当前数据 = 上一列数据的当前下标-1 + 上一列数据的当前下标
  3. 上一列数据的当前下标有可能没有数据
/**
 * @param {number} numRows
 * @return {number[][]}
 */
var generate = function(numRows) {
  let c = 0;
  let currentIndex = 1;
  const result = [];
  while (c < numRows) {
    if (!result[c]) result[c] = [1];
    while (result[c].length <= c) {
      const item = result[c -1][currentIndex - 1] + (result[c - 1].length > currentIndex ? result[c - 1][currentIndex] : 0);
      result[c].push(item);
      currentIndex += 1;
    }
    currentIndex = 1;
    c += 1;
  }
  return result;
};

需要注意一些边缘条件的判断