每日一道leetcode(python)118. 杨辉三角

每日一道leetcode118. 杨辉三角

2021.07.15

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。



在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/pascals-triangle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路
1、 层数为0,直接返回[];

2、 层数为1, 直接返回[1];

3、 层数为2, 直接返回[[1], [1,1]]

4、层数超过2,下一层的值由上一层求得。

class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        if numRows == 0:
            return []
        elif numRows == 1:
            return [[1]] # 返回一个二维数组
        elif numRows ==2:
            return [[1],[1,1]]
        triangle = [[1],[1,1]]
        for i in range(2,numRows):
            item = [1]
            for j in range(1,i):
                item.append(triangle[i-1][j-1] + triangle[i-1][j])
            item.append(1)
            triangle.append(item)
        return triangle

你可能感兴趣的:(每日一道leetcode,leetcode)