杨辉三角

题目

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

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

示例 1:

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

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

提示:

1 <= numRows <= 30

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/pascals-triangle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法:动态规划

比较简单的一道动态规划算法题

    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> rs = new ArrayList<>();
        List<Integer> item1= new ArrayList<>();
        item1.add(1);
        rs.add(item1);
        if (numRows==1)
        {
            return rs;
        }
        List<Integer> item2= new ArrayList<>();
        item2.add(1);
        item2.add(1);
        rs.add(item2);
        if(numRows==2)
        {
            return rs;
        }
        for (int i = 2; i <numRows ; i++) {
            List<Integer> preItem=rs.get(i-1);
            List<Integer> item= new ArrayList<>();
            item.add(1);
            for (int index = 1; index < i; index++) {
                item.add(preItem.get(index-1)+preItem.get(index));
            }
            item.add(1);
            rs.add(item);
        }
        return rs;
    }
posted @ 2022-11-28 11:44  花茶冰糖  阅读(3)  评论(0编辑  收藏  举报