118. 杨辉三角
给定一个非负整数 numRows
,生成「杨辉三角」的前 numRows
行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1 输出: [[1]]
提示:
1 <= numRows <= 30
class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> ans = new ArrayList<>();List<Integer> a = new ArrayList<>();a.add(1);ans.add(a);//为第一位加上值:1for(int i = 1;i < numRows;i++){//为接下来的行赋值List<Integer> temp = new ArrayList<>();temp.add(0);//为temp的头加上0for(int s : ans.get(i-1)){//将前一行的值赋给temp,{0,1},{0,1,1}这样的temp.add(s);}for(int s = 0; s < ans.get(i-1).size(); s++){temp.set(s,temp.get(s)+ans.get(i-1).get(s));//将上一排的值与temp相加则为此牌的值;//{1}+{0,1}={1,1};//{1,1}+{0,1,1}={1,2,1};//(1,2,3)+{0,1,2,1}={1,4,6,4,1};}ans.add(temp);//加到答案上}return ans;}
}