public class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
if(numRows==0){
return result; // 输入为0的时候,返回[]
}
List<Integer> firstrow = new ArrayList<Integer>();
firstrow.add(1);//第一行为[1]
result.add(firstrow);
for(int i=2;i<=numRows;i++){
List<Integer> row = new ArrayList<Integer>();
row.add(1);//每一行的第一个都是1
List<Integer> prerow = result.get(result.size()-1);//就是最终输出的list里面的倒数第二行 现在正在算的是最后一行(循环)
for(int j=1;j<i-1;j++){ //这里为什么是i-1呢?:因为最后一个数还是1,直接手动加
row.add(prerow.get(j-1)+prerow.get(j));//剩下来的list的第j个元素等于上一行的第j-1个元素+第j个元素,get用来返回元素
}
row.add(1);//最后的一个元素1
result.add(row);
}
return result;
}
}
118 Pascal' Triangle 逻辑已经跟不上了咋整= =
最新推荐文章于 2021-10-29 10:30:05 发布