力扣刷题(第二十六天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

杨辉三角

解题思路

  1. 初始化结果列表:如果输入的行数为 0,直接返回空列表;否则,初始化结果列表并添加第一行 [1]。
  2. 逐行构建:从第二行开始,每行的第一个和最后一个元素为 1,中间元素通过上一行的相邻元素相加得到。
  3. 计算中间元素:对于每一行的中间元素,使用上一行的相邻元素之和来计算。
    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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值