pascals-triangle
codeflysafe Lv5

力扣

https://pic.leetcode-cn.com/1626927345-DZmfxB-PascalTriangleAnimated2.gif

思路 💥

每一行的第一个元素最后一个元素均为1,中间元素有:

假设上一行元素为 prev 数组, 本行为 next数组, 则有:

则,使用该递推公式即可。

Code 🐘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ans;
vector<int> prev = {1}, next;
ans.push_back(prev);
int i = 2;
while(i <= numRows){
// 重新初始化,扩充元素
next.resize(i,1);
for(int j = 1; j < i -1; j++){
next[j] = prev[j-1] + prev[j];
}
prev = next;
ans.push_back(next);
i++;
}

return ans;
}
};

复杂度分析 🥇

时间复杂度 空间复杂度
O(N^2) O(N)
  • 本文标题:pascals-triangle
  • 本文作者:codeflysafe
  • 创建时间:2022-02-19 15:33:12
  • 本文链接:https://codeflysafe.github.io/2022/02/19/pascals-triangle/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论