首页 > 其他 > 详细

Pascal's Triangle

时间:2015-01-26 22:22:30      阅读:231      评论:0      收藏:0      [点我收藏+]

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来计算当前行list4
29                      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

原文:http://www.cnblogs.com/mrpod2g/p/4251382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!