首页 > 代码库 > leetcode 【 Pascal's Triangle 】python 实现

leetcode 【 Pascal's Triangle 】python 实现

题目

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]

leetcode 【 Pascal's Triangle 】python 实现