我将杨辉三角分成两种情况,一种是只有一层,第二种即普遍情况是多层
》只有一层时,只有一个1
》多层时,每一层的头和尾都是1,主要是在每一层的中间进行处理
中间的数怎么处理?
》观察规律,第n层(从1开始)中间有n-2个数(内部循环次数)
》每层的除头尾的第一个数的值为上一层的第一个数和第二个数相加,第二个数为上一层第二个数和第三个数相加。。。(内部循环计算数值方法)
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> all=new ArrayList();
List<Integer> firstList=new ArrayList();
firstList.add(1);
all.add(firstList);
for(int i=2;i<=numRows;i++){
List<Integer> list=new ArrayList();
list.add(1);
for(int j=2;j<i;j++){
list.add(all.get(i-2).get(j-2)+all.get(i-2).get(j-1));
}
list.add(1);
all.add(list);
}
return all;
}
}