package com.app.main.LeetCode;
import java.util.ArrayList;
import java.util.List;
/**
* 118
* easy
*
* https://leetcode.com/problems/pascals-triangle/
*
* Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.
*
*
* In Pascal's triangle, each number is the sum of the two numbers directly above it.
*
* Example:
*
* Input: 5
* Output:
* [
* [1],
* [1,1],
* [1,2,1],
* [1,3,3,1],
* [1,4,6,4,1]
* ]
* Created with IDEA
* author:Dingsheng Huang
* Date:2019/9/24
* Time:上午10:49
*/
public class PascalTriangle {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> lists = new ArrayList<>();
List<Integer> firstList = new ArrayList<>();
if (numRows == 0) {
return lists;
}
firstList.add(1);
lists.add(firstList);
for (int i = 2; i <= numRows; i++) {
List<Integer> pre = lists.get(i - 2);
List<Integer> curr = new ArrayList<>();
curr.add(1);
for (int j = 1; j < i - 1; j++) {
curr.add(pre.get(j - 1) + pre.get(j));
}
curr.add(1);
lists.add(curr);
}
return lists;
}
}