Build each row using values from previous row.
1class Solution {
2 public List<List<Integer>> generate(int numRows) {
3 List<List<Integer>> triangle = new ArrayList<>();
4 if (numRows == 0) return triangle;
5
6 triangle.add(new ArrayList<>());
7 triangle.get(0).add(1);
8
9 for (int i = 1; i < numRows; i++) {
10 List<Integer> row = new ArrayList<>();
11 List<Integer> prevRow = triangle.get(i - 1);
12
13 row.add(1);
14
15 for (int j = 1; j < i; j++) {
16 row.add(prevRow.get(j - 1) + prevRow.get(j));
17 }
18
19 row.add(1);
20 triangle.add(row);
21 }
22
23 return triangle;
24 }
25}