118-杨辉三角

杨辉三角

题目

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 5
输出:

[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

思路

  • 迭代

先判断给的数字是否是0.

其次第一行永远都是1

再循环遍历插入,中间的就是遍历上一层的,收尾都是1.

代码

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> triangle = new ArrayList<>();
        
        if(numRows == 0){
            return triangle;
        }
        //初始第一行
        triangle.add(new ArrayList());
        triangle.get(0).add(1);
        
        for(int i = 1;i < numRows;i++){
            List<Integer> row = new ArrayList<>();
            List<Integer> pre = triangle.get(i-1);
            //第一个元素永远都是1
            row.add(1);
            //然后要遍历之前的列表;
            for(int j = 1;j < i;j++){
                row.add(pre.get(j) + pre.get(j-1));
            }
            //最后一个元素也是1
            row.add(1);
            
            triangle.add(row);
        }
        
        return triangle;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 118. 杨辉三角 本文将会写如下几个部分: 何谓“杨辉三角” LeetCode第118题题目部分 思路分析 题解...
    拜仁的月饼阅读 887评论 0 0
  • LeetCode --- 字符串、数组简书专栏:https://www.jianshu.com/nb/417965...
    KM_0d16阅读 212评论 0 0
  • 题目描述: 给定一个非负整数numRows,生成杨辉三角的前numRows行。 在杨辉三角中,每个数是它左上方和右...
    小刘一定要努力阅读 99评论 0 0
  • 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的...
    vbuer阅读 483评论 0 0
  • 内容 给定一个非负整数 numRows,生成杨辉三角的前 *numRows *行。 在杨辉三角中,每个数是它左上方...
    吃饭用盘装阅读 252评论 0 0