给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
思路:杨辉三角一看大家应该就明白,就是每一个数都等于其左上右上的数的和,首先我们可以知道第一个list是1然后每一个sub_list开始和结尾都是1,只算中间的数就可以.就可以往后推理,
例如:list[2][1] = list[1][0]+list[1][1]
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> list_all = new ArrayList<List<Integer>>();
if(numRows<1){
return list_all;
}
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list_all.add(list1);
for(int i=1;i<numRows;i++){
List<Integer> list = new ArrayList<Integer>();
list.add(1);
List<Integer> list_p = list_all.get(i-1);
for(int j=1;j<i;j++){
list.add(list_p.get(j-1)+list_p.get(j));
}
list.add(1);
list_all.add(list);
}
return list_all;
}
}