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] ]
构造杨辉三角
每行的第一个元素和最后一个元素都是1,其他元素则为a[i][j] = a[i-1][j]+a[i-1][j-1]
class Solution:
def generate(self, numRows):
ret=[]
for i in range(numRows):
ret.append([1]) #确保每一行的第一个元素是1
for j in range(1,i+1):
if j==i: #判断其是否为该行的最后一个元素
ret[i].append(1) #确保每行的最后一个元素是1
else:
ret[i].append(ret[i-1][j]+ret[i-1][j-1])
return ret