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

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

示例 1:

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

示例 2:

输入: numRows = 1
输出: [[1]]

提示:

  • 1 <= numRows <= 30
    class Solution:
        def generate(self, numRows: int) -> List[List[int]]:
            if(numRows==0)://返回空列表
                return []
            res = [[1]]//否则,至少生成一层三角
            for i in range(2,numRows+1):
                for j in range(0,i):
                    if(j==0)://每层第一个和最后一个特殊处理
                        temp = []//追加列表而非追加单个数值元素
                        temp.append(1)
                        res.append(temp)
                    elif(j==i-1):
                        res[i-1].append(1)
                    else://非首尾元素则追加上层的相邻元素
                        res[i-1].append(res[i-2][j]+res[i-2][j-1])
            return res
                    
    

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐