[leedcode 118] Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
public class Solution { public List<List<Integer>> generate(int numRows) { //杨辉三角形,把每一行从头对齐,每一行每一列(非头尾)等于前一行对应的列和其前一列相加所得 List<List<Integer>> res=new ArrayList<List<Integer>>(); List<Integer> seq=new ArrayList<Integer>(); if(numRows<=0) return res; seq.add(1); res.add(seq); for(int i=1;i<numRows;i++){ List<Integer> temp=new ArrayList<Integer>(); for(int j=0;j<=i;j++){ if(j==0||j==i)//第一列和最后一列都是1 temp.add(1); else{ List<Integer> pre=res.get(i-1);//此处非常好,通过获取已经保存的结果,计算本行结果 temp.add(pre.get(j)+pre.get(j-1)); } } res.add(temp); } return res; } }