初级算入门_杨辉三角
2024-11-04 15:25:38 # 技术笔记

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

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= numRows <= 30

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

class Solution {
public List<List<Integer>> generate(int numRows) {

List<List<Integer>> res = new ArrayList<>();

for(int i=0 ; i<numRows ; i++){
ArrayList<Integer> row = new ArrayList<>();
for(int j = 0;j<=i;j++){
if(j==0 || j==i){
row.add(1);
}else{
//第i层的第j个元素 = i-1层的第j个元素 + i-1层的第j-1元素
row.add(res.get(i - 1).get(j - 1) + res.get(i - 1).get(j));
}

}
res.add(row);
}

return res;
}
}