首页 > 代码库 > Pascal's Triangle

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]]

 1 public class Solution { 2     public List<List<Integer>> generate(int numRows) { 3         List<List<Integer>>triangle_list = new ArrayList<List<Integer>>(); 4         //初始化第一和第二行 5         List<Integer>list1 = new ArrayList<Integer>(); 6         List<Integer>list2 = new ArrayList<Integer>(); 7         list1.add(1); 8         list2.add(1); 9         list2.add(1);10         11         //分情况讨论12         if(numRows==1){13             triangle_list.add(list1);14         }15         16         if(numRows==2){17             triangle_list.add(list1);18             triangle_list.add(list2);19         }20         21         if(numRows>2){22              triangle_list.add(list1);23              triangle_list.add(list2);24              for(int i=2;i<numRows;i++){//i是行标对应外层list下标25                  List<Integer>list3 = triangle_list.get(i-1);26                  List<Integer>list4 = new ArrayList<Integer>();27                  list4.add(1);28                  for(int j=1;j<=i-1;j++){//根据杨辉三角用上一行list3来计算当前行list429                      list4.add(list3.get(j-1)+list3.get(j));30                  }31                  list4.add(1);32                  triangle_list.add(list4);33              }34         }35         36         37         return triangle_list;38     }39 }

根据杨辉三角来计算,还是比较easy的~

Pascal's Triangle