LeetCode-118杨辉三角

LeetCode-118杨辉三角
我将杨辉三角分成两种情况,一种是只有一层,第二种即普遍情况是多层
》只有一层时,只有一个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;
    }
}
上一篇:刷题-力扣-118. 杨辉三角


下一篇:牛客java面试问答118-126【面向对象】