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] ]思路:标准的找规律,nowrow[j] = prerow[j] + prerow[j+1] , 1<=j<nowrow.size()-1;nowrow[0] = nowrow[nowrow.size()-1] = 1;
用一个list累加结果作为中间结果,而不像使用二维数组保存整个结果并直接取值计算中间结果那样的方式。
可以手动模拟一下就明白了,挺有意思的。
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> list = new ArrayList();
List<Integer> l = new ArrayList();
for(int i = 0 ;i < numRows ;i++){
l.add(0,1);
for(int j = 1;j < l.size()-1;j++){
l.set(j,l.get(j) + l.get(j+1));
}
list.add(new ArrayList(l));
}
return list;
}
}