力扣题目 --- 杨辉三角

题目描述:

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]

思路描述:

按照定义来进行遍历创建,即模仿的思路。

代码:

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> result=new ArrayList<>();
        List<Integer> tmp=new ArrayList<>();
        tmp.add(1);
        result.add(tmp);
        if(numRows==1){
            return result;
        }
        List<Integer> tmp2=new ArrayList<>();
        tmp2.add(1);
        tmp2.add(1);
        result.add(tmp2);
        if(numRows==2){
            return result;
        }
        for(int i=3;i<=numRows;i++){
            List<Integer> tmpMy=new ArrayList<>();
            tmpMy.add(1);
            for(int j=0;j<result.get(i-2).size()-1;j++){
                tmpMy.add(result.get(i-2).get(j)+result.get(i-2).get(j+1));
            }
            tmpMy.add(1);
            result.add(tmpMy);
        }
        return result;
    }
}

提交结果: