给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
思路:
class Solution {
public List<List<Integer>> generate(int n) {
if(n<0) {
return null;
}
List<List<Integer>> list=new ArrayList<>();
if(n>=1) {
List<Integer> date=new ArrayList<Integer>();
date.add(1);
list.add(date);
}
if(n>=2) {
List<Integer> date=new ArrayList<Integer>();
date.add(1);
date.add(1);
list.add(date);
}
if(n>=3) {
for(int i=3;i<=n;i++) {
List<Integer> date=new ArrayList<Integer>();
List<Integer> prev=list.get(i-2);
date.add(1);
for(int j=2;j<=i-1;j++) {
date.add(prev.get(j-1)+prev.get(j-2));
}
date.add(1);
list.add(date);
}
}
return list;
}
}