Leetcode 118 杨辉三角
- > generate(int numRows){ List
本题属于数组类题目,大体思路是每一行的首个和结尾一个数字都是1,从第三行开始,中间的每个数字都是上一行的左右两个数字之和。
代码实现,
public class solution {
public list<list<integer>> generate(int numrows){
list<list<integer>> allrows = new arraylist<list<integer>>(); // 将list中嵌套一个list,并且实例化成新方法arraylist
arraylist<integer> row = new arraylist<integer>(); // 对每一个list也进行实例化
for(int i=0;i<numrows;i++){ // 对杨辉三角的行数进行遍历,遍历行数;之后对索引0位置上加入数字1
row.add(0, 1);
for(int j=1;j<row.size()-1;j++) // 遍历杨辉三角下一层的list中每个数
row.set(j, row.get(j)+row.get(j+1)); // 将上边两个数字加到下边
allrows.add(new arraylist<integer>(row)); //对全部航加上新list的集合
}
return allrows; //得出最终结果
}
}
summary:
本题主要利用双层的list嵌套,并能想到将上边两个list中的数加到新的row中;同时用两层循环。