题目链接: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 }