灵感来源
- 保持更新,努力学习
- python脚本学习
杨辉三角
解题思路
- 初始化结果列表:如果输入的行数为 0,直接返回空列表;否则,初始化结果列表并添加第一行 [1]。
- 逐行构建:从第二行开始,每行的第一个和最后一个元素为 1,中间元素通过上一行的相邻元素相加得到。
- 计算中间元素:对于每一行的中间元素,使用上一行的相邻元素之和来计算。
class Solution: def generate(self, numRows: int) -> list[list[int]]: if numRows == 0: return [] triangle = [[1]] for i in range(1, numRows): prev_row = triangle[-1] new_row = [1] for j in range(1, i): new_row.append(prev_row[j-1] + prev_row[j]) new_row.append(1) triangle.append(new_row) return triangle
逐行解释
class Solution:
def generate(self, numRows: int) -> list[list[int]]:
# 如果输入的行数为0,直接返回空列表
if numRows == 0:
return []
# 初始化结果列表,第一行固定为[1]
triangle = [[1]]
# 从第二行开始构建杨辉三角(索引从1开始)
for i in range(1, numRows):
# 获取上一行,用于计算当前行的元素
prev_row = triangle[-1]
# 初始化当前行,第一个元素始终为1
new_row = [1]
# 计算当前行的中间元素(从索引1到i-1)
# 每个中间元素等于上一行相邻两个元素的和
for j in range(1, i):
new_row.append(prev_row[j-1] + prev_row[j])
# 当前行的最后一个元素始终为1
new_row.append(1)
# 将当前行添加到结果列表中
triangle.append(new_row)
# 返回完整的杨辉三角
return triangle