给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
例如:
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> generate = new ArrayList<>();
if(numRows == 0){
return generate;
}
List<Integer> oneRow = new ArrayList<>();
generate.add(oneRow);
generate.get(0).add(1);//第1行的元素添加了1
//直接从第2行开始计算
for(int i = 1;i < numRows; i++){
List<Integer> curRow = new ArrayList<>();
curRow.add(1);
List<Integer> preRow = generate.get(i-1);
for(int j = 1; j < i;j++ ){
int x = preRow.get(j);
int y = preRow.get(j-1);
curRow.add(x+y);
}
//最后一个元素
curRow.add(1);
generate.add(curRow);
}
return generate;
}
}