118. 杨辉三角

题目:

思路:

【1】模拟的方式

杨辉三角形本质上可以转换成这种形式
01
11  1
21  2  1
31  3  3  1
这里存在规律,就是首尾都必须是1,
且中间部分的值为
当第三层的时候
下标为1的3的值是由第二层的下标0+下标1的值组合成的
故A[3][1] = A[2][0] + A[2][1]

 

代码展示:

//时间1 ms 击败 96.54%
//内存40 MB 击败 66.2%
class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        for (int i = 0; i < numRows; i++){
            List<Integer> temp = new ArrayList<Integer>();
            temp.add(1);
            res.add(temp);
        }
        for (int i = 1; i < numRows; i++){
            List<Integer> t1 = res.get(i-1);
            List<Integer> t2 = res.get(i);
            for (int j = 1; j < i; j++){
                t2.add(t1.get(j)+t1.get(j-1));
            }
            t2.add(t1.get(i-1));
        }
        return res;
    }
}

 

posted @ 2023-08-01 12:06  忧愁的chafry  阅读(4)  评论(0编辑  收藏  举报