杨辉三角(java)

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

(题目链接:https://leetcode-cn.com/problems/pascals-triangle/)

解题代码:

 1     public List<List<Integer>> generate(int numRows) {
 2         // 若输入的行数小于等于0,则返回空列表,表示没有数据。
 3         if(numRows <= 0)
 4             return new ArrayList<>();
 5         List<List<Integer>> result = new ArrayList<>(); // 保存整个数据
 6         // 创建第一行列表并添加到result中
 7         List<Integer> firstLine = new ArrayList<>();
 8         firstLine.add(1);
 9         result.add(firstLine);
10         if(numRows == 1)
11             return result;
12         // 创建第二行列表并添加到result中
13         List<Integer> secondLine = new ArrayList<>();
14         secondLine.add(1);
15         secondLine.add(1);
16         result.add(secondLine);// 将第二行的列表加载到result中
17         if(numRows == 2)
18             return result;
19         // 依次添加后面每行列表
20         for(int i = 3; i <= numRows; i++){
21             List<Integer> frontLine = result.get(i-1-1);
22             List<Integer> tmp = new ArrayList<>(); // 第三行开始的每一行
23             tmp.add(1);
24             for(int j = 1; j < i-1; j++){
25                 int left = frontLine.get(j-1);
26                 int right = frontLine.get(j);
27                 tmp.add(left+right);
28             }
29             tmp.add(1);
30             result.add(tmp);
31         }
32         return result;
33     }

 

posted @ 2021-02-01 16:06  一帆小白  阅读(37)  评论(0编辑  收藏  举报