力扣题目 --- 杨辉三角
题目描述:
给定一个非负整数 numRows
,生成「杨辉三角」的前 numRows
行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1 输出: [[1]]
思路描述:
按照定义来进行遍历创建,即模仿的思路。
代码:
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> result=new ArrayList<>();
List<Integer> tmp=new ArrayList<>();
tmp.add(1);
result.add(tmp);
if(numRows==1){
return result;
}
List<Integer> tmp2=new ArrayList<>();
tmp2.add(1);
tmp2.add(1);
result.add(tmp2);
if(numRows==2){
return result;
}
for(int i=3;i<=numRows;i++){
List<Integer> tmpMy=new ArrayList<>();
tmpMy.add(1);
for(int j=0;j<result.get(i-2).size()-1;j++){
tmpMy.add(result.get(i-2).get(j)+result.get(i-2).get(j+1));
}
tmpMy.add(1);
result.add(tmpMy);
}
return result;
}
}