LeetCode118.杨辉三角

题目:

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

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

示例1:

输入:numRows=5

输出:[[1],[1,1],[1,2,1],[1,3,3,1],

1,4,6,4,1\]

示例2:

输入:numRows=1

输出:[[1]]

思路:

当前的值,等于左上角加上正上方。

代码:

复制代码
    public List<List<Integer>> generate(int numRows) {
        // ​[1]
        // [1,1]
        // [1,2,1]
        // [1,3,3,1]
        // [1,4,6,4,1]​


        //预分配空间
        List<List<Integer>> resultList = new ArrayList<>(numRows);
        //添加一个list
        resultList.add( List.of(1));

        for (int i=1; i< numRows; i++) {

            List<Integer> list = new ArrayList<>();
            //每行的第一个数是1
            list.add(1);

            //i是行, j是列
            //左上角的行下标,比当前的行下标减一。正上方的列下标,分别是  j-1 和 j.
            for (int j=1; j<i; j++) {
                //当前的值,等于左上角加上正上方
                list.add( resultList.get(i-1).get(j-1) + resultList.get(i-1).get(j)   );
            }
            //每行的最后一个数是1
            list.add(1);
            resultList.add( list);

        }
        return resultList;


    }
相关推荐
SuperBear16 分钟前
轮转数组 循环换位解法
算法
用户403159863966320 分钟前
版本号升级统计
java·算法
DoraBigHead43 分钟前
小哆啦解题记 · 射箭引爆气球,怎么射最省箭?
算法
AI_Keymaker1 小时前
手术台上的AlphaGo:约翰霍普金斯大学发布自主手术机器人
算法·机器人
AI_Keymaker1 小时前
人类早期驯服野生机器人珍贵影像(不是)
算法·机器人
今禾1 小时前
一行代码引发的血案:new Array(5) 到底发生了什么?
前端·javascript·算法
橙几2 小时前
击败了90%的解法?Two Sum 从 O(n²) 到 O(n) 的优化之路
算法
叶子爱分享2 小时前
经典排序算法之归并排序(Merge Sort)
算法·排序算法
珹洺2 小时前
C++算法竞赛篇:DevC++ 如何进行debug调试
java·c++·算法
Norvyn_72 小时前
LeetCode|Day18|20. 有效的括号|Python刷题笔记
笔记·python·leetcode