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] ]
题目大意
给定一个正整数n,求n层帕斯卡三角形(也称杨辉三角形)。
解题思路
对任意的n>0有
f(1, n)=1,(n>0)
f(n, n)=1,(n>2)
f(i,j) = f(i-1, j-1)+f(i, j-1),i>2,j>2
1 public List<List<Integer>> generate(int numRows) { 2 List<List<Integer>> allrows = new ArrayList<List<Integer>>(); 3 ArrayList<Integer> row = new ArrayList<Integer>(); 4 for (int i=0;i<numRows;i++) 5 { 6 row.add(0,1); //在第一个位置添加1 7 for (int j=1;j<row.size()-1;j++) 8 { 9 row.set(j,row.get(j) + row.get(j+1)); 10 } 11 allrows.add(new ArrayList<>(row)); 12 } 13 return allrows; 14 }