题目描述
For example, given numRows = 5,
Return
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
三角形特点: 每行数字个数等同于行数,每行的数字由上一行的数字相加得到(除了开始和结尾都是1)
代码描述
class Solution {
public List<List<Integer>> generate(int numRows) {
//杨辉三角:每行数字个数=行数
//第一个和最后一个都是1
//本行数字由上一行数字决定
List<List<Integer>> result = new ArrayList<>();
List<Integer> pre = new ArrayList<>();
if(numRows<=0)
return result;
pre.add(1);
result.add(pre);
for(int i=2;i<=numRows;i++){
//生成每一行的数字
List<Integer> cur = new ArrayList<>();
cur.add(1);
for(int j=1;j<pre.size();j++){
cur.add(pre.get(j-1)+pre.get(j));
}
cur.add(1);
//将每一行的数字加到结果中
result.add(cur);
pre = cur;
}
return result;
}
}