这道题是生成杨辉三角,看了下杨辉三角的性质,就可以解决了。
下面是AC代码:
1 /** 2 * Given numRows, generate the first numRows of Pascal's triangle. 3 * @param numRows 4 * @return 5 */ 6 public ArrayList> generate(int numRows){ 7 ArrayList > result = new ArrayList >(); 8 if(numRows<=0) 9 return result;10 ArrayList row1 = new ArrayList ();11 row1.add(1);12 result.add(row1);13 if(numRows == 1)14 {15 return result;16 }17 ArrayList row2 = new ArrayList ();18 row2.add(1);19 row2.add(1);20 result.add(row2);21 if(numRows == 2){22 return result;23 }24 for(int i=3;i<=numRows;i++){25 ArrayList ls = new ArrayList ();26 genOneRow(i,result.get(i-2),ls);27 result.add(ls);28 }29 return result;30 }31 /**32 * 生成第row排的结果33 * @param row34 * @param last35 * @param curr36 */37 private void genOneRow(int row,ArrayList last, ArrayList curr){38 curr.add(1);39 for(int i=0;i