解法
核心思想:创建两个数组,分别存储行和列的数据。每行头和末的元素为1,中间的元素为上一行相同角标元素和上一行相同角标-1元素之和
代码实现
public class Solution118 {
public List<List<Integer>> generate(int numRows){
List<List<Integer>> list = new ArrayList<List<Integer>>(); //创建列数组
for(int i = 1; i <= numRows;i++) { //循环numRows行
ArrayList<Integer> lists= new ArrayList<Integer>(); //创建行数组
for(int j = 0; j < i; j++) {
if(j == 0 ||j == i-1) { //判断是否头或者尾
lists.add(1); //如果是则添加为1
}else { //不是则添加为上一行的相同角数和前一个的数的和
lists.add(list.get(i-2).get(j)+list.get(i-2).get(j-1));
}
}
list.add(lists); //将行数组添加进列数组
}
return list;
}
}