【LeetCode】杨辉三角 - 简单题我重拳出击

·  阅读 505
【LeetCode】杨辉三角 - 简单题我重拳出击

嗨!~ 大家好,我是YK菌 🐷 ,一个微系前端 ✨,喜欢分享自己学到的小知识 🏹,欢迎关注我呀 😘 ~ [微信号: yk2012yk2012,微信公众号:ykyk2012]

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

中等、困难题我唯唯诺诺,简单题我重拳出击,今天再来做一道简单题增增自信,杨辉三角。其实这题看上去简单,但是还是有些细节容易出错的~

118. 杨辉三角

链接:leetcode-cn.com/problems/pa…

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。

在这里插入图片描述

【解法】双层循环

我们只要根据题目的定义,根据规律写代码就可以了,具体的思路可以看代码中的注释

/**
 * @param {number} numRows
 * @return {number[][]}
 */
function generate(numRows) {
  // 创建一个结果数组,数组中的元素还是数组,也就是一个二维数组
  let result = [];
  // 结果数组中的第i个元素就是杨辉三角第i行的元素 (i从0开始)
  for (let i = 0; i < numRows; i++) {
    // 定义杨辉三角中的某一行row数组,第i行有i+1个元素,内容都填充为1
    let row = new Array(i + 1).fill(1);
    // 遍历行数组,给其填充结果
    for (let j = 1; j < row.length - 1; j++) {
      // 满足题目给出的要求,每个数是它左上方和右上方的数的和
      row[j] = result[i - 1][j - 1] + result[i - 1][j];
    }	
    // 将行数组row推入结果数组result中
    result.push(row);
  }
  // 返回杨辉三角结果数组
  return result;
}
复制代码

运行结果

在这里插入图片描述

分类:
前端
分类:
前端
收藏成功!
已添加到「」, 点击更改