Pascal's Triangle II

Given an index k, return the kth row of the Pascal's triangle.

For example, given k = 3,
Return [1,3,3,1].

完成Pascal's Triangle问题,这个就不难了吧~

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

 

posted @ 2015-01-26 21:18  mrpod2g  阅读(144)  评论(0编辑  收藏  举报