博文中会简要介绍Leetcode P0118题目分析及解题思路。
“Pascal’s 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.
以下是Java的题解代码实现。
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> triangle = new ArrayList<>();
if (numRows == 0)
return triangle;
for (int row=1; row<=numRows; ++row) {
List<Integer> level = new ArrayList<>();
for (int col=1; col<=row; ++col) {
if (col == 1 || col == row)
level.add(1);
else {
int left = triangle.get(row-2).get(col-2);
int right = triangle.get(row-2).get(col-1);
level.add(left+right);
}
}
triangle.add(level);
}
return triangle;
}
}
