当前位置: 代码迷 >> 综合 >> Leetcode 118. 杨辉三角(Python3)
  详细解决方案

Leetcode 118. 杨辉三角(Python3)

热度:7   发布时间:2023-12-23 10:26:06.0

118. 杨辉三角

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

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

示例:

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

代码:

class Solution:def generate(self, numRows):""":type numRows: int:rtype: List[List[int]]"""if not numRows:return []if numRows == 1:return [[1]]if numRows == 2: return [[1],[1,1]]res = [[1],[1,1]]if numRows > 2:for i in range(2,numRows):cr = [1,1]for j in range(1,i):cr.insert(j,res[i-1][j-1]+res[i-1][j])res.append(cr)return res

 

大神给出的优化后的代码:

class Solution:def generate(self, numRows):""":type numRows: int:rtype: List[List[int]]"""result = []for i in range(numRows):now = [1]*(i+1)if i >= 2:for n in range(1,i):now[n] = pre[n-1]+pre[n]result += [now]pre = nowreturn result