题目:
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] ]
代码:oj测试通过 Runtime: 46 ms
1 class Solution: 2 # @return a list of lists of integers 3 def generate(self, numRows): 4 if numRows < 1: 5 return [] 6 pascal = [] 7 first_row = [1] 8 pascal.append(first_row) 9 for i in range(1,numRows): 10 tmp = [] 11 tmp.append(1) 12 for j in range(len(pascal[i-1])): 13 if j == len(pascal[i-1])-1: 14 tmp.append(1) 15 else: 16 tmp.append(pascal[i-1][j] + pascal[i-1][j+1]) 17 pascal.append(tmp) 18 return pascal
思路:
排除几个special case
然后把pascal写成如下的形式,比较容易写代码:
[1]
[1,1]
[1,2,1]
[1,3,3,1]
[1,4,6,4,1]