题目描述:
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
例:
思路:
结合给出的代码,可以判断是利用链表的方式进行解决。
1、当numRows为0时,应该返回null。
2、当numRoes小于2时,不存在相加的情况。
3、所以增加判断,只有当numRows大于2是,用上一行的(j-1)+(j)。
代码:
public List<List<Integer>> generate(int numRows) {
if (numRows==0){
return null;
}
List<List<Integer>> integers = new ArrayList<>();
int sum;
for (int i=0;i<numRows;i++){
ArrayList<Integer> integers1 = new ArrayList<>();
for (int j=0;j<=i;j++){
if (j==0||j==i){
integers1.add(1);
}
if(i>1 && j>0 && j<i){
sum = integers.get(i-1).get(j-1)+ integers.get(i-1).get(j);
integers1.add(sum)
}
}
integers.add(integers1);
}
return integers;
}
结果: