文章目录
1. 题目
2. 思路
(1) 递归
- 利用递归得到上一层的结果,根据上一层的结果计算这一层的结果即可。
(2) 模拟法
3. 代码
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public List> generate(int numRows) {
if (numRows == 1) {
return new ArrayList>() {{
add(new ArrayList() {{
add(1);
}});
}};
}
List> res = generate(numRows - 1);
List pre = res.get(res.size() - 1);
List cur = new ArrayList<>();
cur.add(1);
for (int i = 1; i < pre.size(); i++) {
cur.add(pre.get(i - 1) + pre.get(i));
}
cur.add(1);
res.add(cur);
return res;
}
}
class Solution1 {
public List> generate(int numRows) {
List> res = new ArrayList<>();
List cur = new ArrayList<>();
cur.add(1);
res.add(cur);
List pre = cur;
while (numRows > 1) {
cur = new ArrayList<>();
cur.add(1);
for (int i = 1; i < pre.size(); i++) {
cur.add(pre.get(i - 1) + pre.get(i));
}
cur.add(1);
res.add(cur);
pre = cur;
numRows--;
}
return res;
}
}