观察可得:每行第一个和最后一个,都是1.
而且每行的元素个数也是只比上一行多1个
中间的元素计算的时候,值为它上一行相邻两个元素的和。
考验ArrayList基本功
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>>c=new ArrayList(numRows);
List<Integer>row=new ArrayList(1);
List<Integer>cur=row;
// 特殊处理第一行
row.add(1);
c.add(row);
//为什么numRows要减1
for(int i=0;i<numRows-1;i++){
// 为什么这里是加2?
row= new ArrayList(i+2);
row.add(1);
//为什么size要减1
for(int j=0;j<cur.size()-1;j++){
row.add(cur.get(j)+cur.get(j+1));
}
row.add(1);
c.add(row);
cur=row;
}
return c;
}
}