118.杨辉三角

题目描述

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

示例:

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

思路

杨辉三角有以下规律:

  • 第一列和最后一列的值都是1
  • 从第三行开始,第i列的值(除了首尾)都等于上一行的i-1列+i列的和

Java代码实现

    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> cur = null;
        for (int i = 0; i < numRows; i++) {
            cur = new ArrayList<>();
            if(i == 0){
                cur.add(1);
            }
            else{
                cur.add(1);
                List<Integer> last = res.get(i-1);
                for(int j=1;j<i;j++){
                    cur.add(last.get(j)+last.get(j-1));
                }
                cur.add(1);
            }
            res.add(cur);
        }
        return res;
    }
全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
05-24 12:16
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务