给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1
输出: [[1]]
注意点1:
注意这种嵌套写法,不一定要分开来写,可以一步到位,按照题目返回的类型写
ArrayList<List<Integer>> result = new ArrayList<>();
注意点2:
每个外list中有numrows个元素,每个内list中元素个数为1到numrows个
注意在这种情况下如何去添加元素
外循环:i 从 0 到 numrows(不包含)
内循环:j 从 0 到 i(包含)
注意点3:
首尾的1可以合并条件添加
public class Generate {
public List<List<Integer>> generate(int numRows) {
ArrayList<List<Integer>> result = new ArrayList<>();
for (int i = 0; i < numRows; i++) {
ArrayList<Integer> inner = new ArrayList<>();
for (int j = 0; j <= i; j++){
if (j == 0 || j == i){
inner.add(1);
}else {
inner.add(result.get(i-1).get(j)+result.get(i-1).get(j-1));
}
}
result.add(inner);
}
return result;
}
}