题目:
Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.
In Pascal's triangle, each number is the sum of the two numbers directly above it.
Example:
Input: 5 Output: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
代码:
class Solution:
def generate(self, numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
res = []
for i in range(numRows):
res.append([1])
for j in range(1,i+1):
if j==i:
res[i].append(1)
else:
res[i].append(res[i-1][j-1]+res[i-1][j])
return res
思路:每一行的第一列元素和最后一列元素值都为1。其余值为前一行当前列和前一行前一列之和,如:res[i][j] = res[i-1][j-1]+res[i-1][j]。