【每日算法】LeetCode 118 —— 杨辉三角(二百一十)

题目内容

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]

提示

1、1 <= numRows <= 30

题解

通过杨辉三角的规则,然后进行递归关系式子的表达:F[i,j] = F[i-1,j-1]+F[i-1,j]。

代码

class Solution {
public:
vector<vector<int>> generate(int n) {
vector<vector<int>> f;
for(int i = 0; i < n; i++){
vector<int> line(i + 1);
line[0] = line[i] = 1;
for(int j = 1; j < i; j++)
line[j] = f[i-1][j-1] + f[i-1][j];
f.push_back(line);
}
return f;
}
};
Author: Frederic Niu
Link: https://www.fredericniu.cn/2021/08/04/【每日算法】LeetCode-118-——-杨辉三角(二百一十)/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
我的公众号