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

***杨辉三角_yyds_LeetCode_python***

1.题目描述:

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

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

示例 1:

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

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/pascals-triangle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.题解:

class Solution:def generate(self, numRows: int) -> List[List[int]]:result = [] #用来存放杨辉三角#for i in range(numRows):now = [1]*(i+1)if i >= 2:for  j in range(1,i):now[j] = pre[j-1] + pre[j]result.append(now)pre = nowreturn result

 


3.题目总结:

这段代码是用来生成杨辉三角的,杨辉三角是一个很有趣的数学图形,它的每一行都是由数字 1 开始和结束,中间的数字是上一行相邻两个数字之和。下面是一个 5 行的杨辉三角:

```
        1
       1 1
      1 2 1
     1 3 3 1
    1 4 6 4 1
```

现在我们来解释一下这段代码:

首先定义了一个函数 `generate`,它接收一个参数 `numRows`,表示要生成杨辉三角的行数。

然后定义了一个空列表 `result`,用来存储生成的杨辉三角。

接下来使用一个循环,循环次数为 `numRows`,也就是要生成的杨辉三角的行数。

在每次循环中,首先创建一个长度为 `i+1` 的列表 `now`,并将其初始化为 1,这个列表就是当前行的数字列表。

然后判断当前行的行数是否大于等于 2,如果是,就需要计算中间的数字。这里使用了另一个循环,循环次数为 `i-1`,也就是中间数字的个数。在循环中,将 `now` 列表中第 `j` 个数字更新为上一行相邻两个数字之和。

接下来将当前行的数字列表 `now` 添加到 `result` 列表中。

最后将当前行的数字列表 `now` 赋值给变量 `pre`,以便下一次循环使用。

最后返回 `result` 列表,即为生成的杨辉三角。

http://www.lryc.cn/news/92852.html

相关文章:

  • Mac使用DBeaver连接达梦数据库
  • spring.expression 随笔0 概述
  • 从Cookie到Session: Servlet API中的会话管理详解
  • docker数据管理与网络通信
  • 怎么查询电脑的登录记录及密码更改情况?
  • 《三》TypeScript 中函数的类型
  • 深入学习 Mysql 引擎 InnoDB、MyISAM
  • 【华为OD统一考试B卷 | 100分】阿里巴巴找黄金宝箱(V)(C++ Java JavaScript Python)
  • 六步快速搭建个人网站
  • TypeScript 中的 type 关键字有什么用?
  • 27 getcwd 的调试
  • 使用IDEA使用Git:Git使用指北——实际操作篇
  • java boot将一组yml配置信息装配在一个对象中
  • 【裸机开发】链接脚本(.lds文件)的基本语法
  • Java 进阶 -- 集合(三)
  • 【华为OD机试真题 C语言】5、TLV解析 | 机试真题+思路参考+代码解析
  • (七)CSharp-刘铁锰版-事件
  • 【ROS】郭老二博文之:ROS目录
  • Android应用程序进程的启动过程
  • 【2】Midjourney注册
  • 第六十八天学习记录:高等数学:导数(宋浩板书)
  • unreal 5 实现角色拾取功能
  • chatgpt赋能python:如何使用Python升序排列一个列表?
  • Lecture 20 Topic Modelling
  • ThreadPoolExecutor线程池
  • chatgpt赋能python:Python实践:如何升级pip
  • 【JavaEE进阶】mybatis
  • Redis的大key
  • MMPretrain
  • 栈和队列(数据结构刷题)[一]-python