Leetcode 118 Pascal's Triangle
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] ]
转移方程 p[i][j] = p[i-1][j-1] + p[i-1][j]
var generate = function(numRows) { var p = [] for (var i=0;i<numRows;i++){ p.push(Array(i+1)) p[i][0] = p[i][i] = 1 for (var j=1;j<i;j++) p[i][j] = p[i-1][j-1] + p[i-1][j] } return p }
或者每次手动构造下一个数组并append
class Solution(object): def generate(self, numRows): if numRows == 0: return [] p, ans = [1], [[1]] for i in range(numRows-1): temp = [1] for j in range(len(p)-1): temp.append(p[j]+p[j+1]) temp.append(1) ans.append(temp) p = temp return ans