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

 

posted @ 2015-06-21 10:25  lilixu  阅读(141)  评论(0编辑  收藏  举报