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 ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> result =new ArrayList<ArrayList<Integer>>(); if(numRows==0) return result; ArrayList<Integer> pre=new ArrayList<Integer>(); ArrayList<Integer> cur=new ArrayList<Integer>(); if(numRows==1){ cur.add(1); result.add(cur); return result; } if(numRows==2){ pre.add(1); result.add(pre); cur.add(1); cur.add(1); result.add(cur); return result; } cur.add(1); result.add(cur); pre.add(1); pre.add(1); result.add(pre); Integer a=0,b=0; for(int i=3;i<=numRows;i++){ cur=new ArrayList<Integer>();//一定要这么写,如果用clear或者是直接设置为null会报空值的错误,因为后面的pre是对cur对象的引 //用,也说明了clear是对象的清除,而不是对该引用的清除; int size=pre.size(); int j=0; a=pre.get(j++); cur.add(a); while(j<size){ b=(Integer)pre.get(j++); cur.add(a+b); a=b; } cur.add(a); result.add(cur); pre=cur; } return result; } }]