导航
导航
文章目录
  1. 题目
  2. 翻译

LeetCode-118.Pascal's Triangle

题目

Given numRows, generate the first numRows of Pascal’s triangle.

For example, given numRows = 5,
Return

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

翻译

给出numRows,生成帕斯卡三角(杨辉三角)的前numRows行。
例如,numRows=5,
返回
[
     [1],
    [1 , 1],
   [1 , 2 , 1],
  [1 , 3 , 3 , 1],
 [1 , 4 , 6 , 4 , 1]
]

杨辉三角的特点,左右两边均为1,中间每一行的数字,等于上一行上方两个数的和。
需注意当numRows=0时,返回长度为0的list。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> pascalTri = new ArrayList<List<Integer>>();

if (numRows <= 0)
return pascalTri;

List<Integer> lastRow = new ArrayList<Integer>();
lastRow.add(1);
pascalTri.add(lastRow);

for (int row = 2; row <= numRows; row++) {
List<Integer> curRow = new ArrayList<Integer>();
curRow.add(1);
for (int i = 1; i < lastRow.size(); i++)
curRow.add(lastRow.get(i - 1) + lastRow.get(i));
curRow.add(1);
pascalTri.add(curRow);
lastRow = curRow;
}

return pascalTri;
}
}