118.Pascal's Triangle

题目链接:https://leetcode.com/problems/pascals-triangle/description/

题目大意:给出杨辉三角的行数,打印其杨辉三角。例子如下:

法一:直接模拟(传说这就是dp),杨辉三角的规律是:每个数都是其上两个元素的和。注意内层的list在每一次for循环后需要清空数值,其清空方法可以有clear()和removeAll(),但我都没有成功,所以我采用了直接new的办法。代码如下(耗时1ms):

 1     public List<List<Integer>> generate(int numRows) {
 2         List<List<Integer>> list = new ArrayList<List<Integer>>();
 3         for(int i = 1; i <= numRows; i++) {
 4             List<Integer> listIn = new ArrayList<Integer>();
 5             for(int j = 0; j < i; j++) {
 6                 if(j == 0 || j == i - 1) {
 7                     listIn.add(1);
 8                 }
 9                 else {
10                     listIn.add(list.get(i-2).get(j-1) + list.get(i-2).get(j));
11                 }
12             }
13             list.add(listIn);
14         }
15         return list;
16     }
View Code

 

posted on 2017-11-06 08:35  二十年后20  阅读(250)  评论(0编辑  收藏  举报

导航