首先我们可以发现题目中返回类型是一个
这其实返回的类似与一个二维数组
我们大概分析下题目根据画图可知,我们可以把每一行的元素进行存储,然后再把每一行存储起来,然后就实现了题目 代码:
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> list=new ArrayList<>();//存储每一行
List<Integer>list1=new ArrayList<>();//每一行的创建
list1.add(1);//第一行只存储个1
list.add(list1);//把第一行存储
for (int i = 1; i <numRows ; i++) {
//for循环从第二行开始存储
List<Integer> temp=new ArrayList<>();
temp.add(1);
List<Integer> pre1=list.get(i-1);//获取上一行
for (int j = 1; j < i; j++) {
temp.add(pre1.get(j)+pre1.get(j-1));//上一行的前一个和后一个之和
}
temp.add(1);//每个最后一个元素
list.add(temp);
}
return list;
}