# [Pascal's Triangle][title] ## Description Given a non-negative integer *numRows*, generate the first *numRows* of Pascal's triangle. ![img](https://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif) 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] ] ``` **Tags:** Array ## 思路 题意是给出行数,输出帕斯卡尔三角形,很简单的模拟,就不多说了。 ```java class Solution { public List> generate(int numRows) { if (numRows == 0) return Collections.emptyList(); List> list = new ArrayList<>(); for (int i = 0; i < numRows; ++i) { List sub = new ArrayList<>(); for (int j = 0; j <= i; ++j) { if (j == 0 || j == i) { sub.add(1); } else { List upSub = list.get(i - 1); sub.add(upSub.get(j - 1) + upSub.get(j)); } } list.add(sub); } return list; } } ``` ## 结语 如果你同我一样热爱数据结构、算法、LeetCode,可以关注我 GitHub 上的 LeetCode 题解:[awesome-java-leetcode][ajl] [title]: https://leetcode.com/problems/pascals-triangle [ajl]: https://github.com/Blankj/awesome-java-leetcode