当前位置: 首页 > web >正文

力扣刷题(第二十六天)

灵感来源 

- 保持更新,努力学习

- 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]# 初始化当前行,第一个元素始终为1new_row = [1]# 计算当前行的中间元素(从索引1到i-1)# 每个中间元素等于上一行相邻两个元素的和for j in range(1, i):new_row.append(prev_row[j-1] + prev_row[j])# 当前行的最后一个元素始终为1new_row.append(1)# 将当前行添加到结果列表中triangle.append(new_row)# 返回完整的杨辉三角return triangle
http://www.xdnf.cn/news/6319.html

相关文章:

  • 运筹说 第136期 | 其他类型对策简介之合作对策
  • BGP联邦和发射试验
  • Linux wlan 单频段 dual wifi创建
  • git中忽略文件.gitignore文件的用法
  • 2025年AI开发者在开发者占比?
  • 进阶2_1:QT5多线程与定时器共生死
  • 深度剖析火狐飞鸟 MIP 泛目录程序:技术原理与实践应用
  • .NET程序启动就报错,如何截获初期化时的问题json
  • E. 23 Kingdom【Codeforces Round 1024 (Div. 2)】
  • 1669上什么课
  • day29-IO(其他流)
  • Java基础(多线程1)
  • 鸿蒙-5.1.0-release构建编译环境
  • 分割等和子集习题分析
  • HCIP(OSPF的拓展配置及选路规则)
  • 矩阵乘法的优化与复杂度分析
  • 一个日志量突增的问题分析处理经历
  • 普通IT的股票交易成长史--20250514复盘
  • 机器学习任务的常用评估指标
  • JVM内存模型
  • 前端面试题:vue3 为什么不需要时间分片?
  • Linux程序设计--期末复习
  • 企业网络新选择:软件定义架构下的MPLS
  • 【Docker】Windows10环境下安装DockerDesktop
  • TCP 三次握手建立连接详解
  • C2S-Scale:Cell2Sentence v2
  • 在星河社区学习PARL使用强化学习来训练AI
  • C#高级编程:IO和序列化
  • linux内核主要由哪五个模块构成?
  • ultralytics 中的 RT-DETR 之 模型结构解析