[leetcode]118.杨辉三角

前言:剑指offer刷题系列

问题:

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

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

image-20230919231437970.png

示例:

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

思路:

杨辉三角是小学就学过的一种方法,看着还挺熟悉,所以没有花费很多时间理解(学名叫做 帕斯卡三角形 的数学模型),帕斯卡三角形是一个由数字构成的三角形,其中每个数字是肩膀上方两个数字之和,一直做金字塔下延。

这个函数接受一个名为 numRows 的整数作为输入,并返回一个二维列表,表示「杨辉三角」的前 numRows 行。下面是详细的思考过程。

  1. 首先,定义一个名为 Solution 的 Python 类。这个类将包含一个方法 generate,它接受一个整数参数 numRows,用于指定要生成的行数。方法的返回值将是一个二维列表,其中包含了帕斯卡三角形模型的前 numRows 行。
  2. generate 方法中,创建一个空列表 triangle,用于存储生成的三角形。
  3. 使用外层循环 for i in range(numRows) 来控制生成的行数。在每次循环中,创建一个空列表 row,用于存储当前行的元素。
  4. 在内层循环 for j in range(1, i) 中,通过访问上一行的元素来计算当前行的元素值。具体地说,将当前元素设置为上一行中相邻两个元素之和:row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
  5. 完成内层循环后,将当前行 row 添加到 triangle 列表中。
  6. 外层循环结束后,返回存储了帕斯卡三角形模型的二维列表 triangle

基于上述思考,代码如下:

class Solution:def generate(self, numRows: int) -> List[List[int]]:triangle = []for i in range(numRows):row = [1] * (i + 1)for j in range(1, i):row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]triangle.append(row)return triangle

执行结果如下图:

image-20230919231347888.png

学到的知识点:

学会如何使用帕斯卡三角形模型生成特定行数的三角形。

今天突然发现之前参加的一个活动快要结束了,但是我的任务还没有做完,要抓紧做一下任务,不然自己的心血啊都要泡汤了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/570663.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Watering an Array

题意 思路 贪心 假如 a[] 全是0 那么答案是 day / 2 现在考虑a[] 最开始那一次 该怎么做&#xff1f; 枚举在哪一天清零即可 然后模拟b[]的操作 遍历a[] 我也不知道为什么不超时 大无语 code #include<iostream> #include<cstdio> #include<stack> #i…

H12-831_338

多选题338、某园区部署OSPF实现网络互通&#xff0c;其中R2的LSDB如图所示。以下关于该LSDB信息的描述&#xff0c;错误的有哪些项? A.此时R4不能访间地址10.1.35.5/24&#xff0c;因为R4所在的Area l内没有泛洪R3-R5互联网段路由信息 B.Area l内无3类LSA&#xff0c;有7类1SA…

00000基础搭建vue+flask前后端分离项目

我完全是参考的这个vue3flask前后端分离环境速建_flask vue3-CSDN博客 安装了node_js&#xff08;添加了环境变量&#xff09; 环境变量 把原来的镜像源换成了淘宝镜像源 npm config set registry https://registry.npmmirror.com/ 查看版本证明安装成功 npm - v 安装npm i…

使用servlet从数据库中取出中文在页面上显示‘?’的问题

问题描述&#xff1a; 解决方案&#xff1a; 1.Idea控制台中并未出现报错信息&#xff0c;一切正常&#xff0c;此时应该考虑的就是编码格式的问题了 2.设置编码格式为UTF-8 3.问题成功解决

Oracle中实现根据条件对数据的增删改操作——Merge Into

一、需求描述 在我们进行项目开发的过程中&#xff0c;会遇到这样的场景&#xff0c;需要根据某个条件对数据进行增、删、改的操作&#xff1b;遇到这种情况我们有2种方法进行解决&#xff1a; 方法一&#xff1a;①查询指定条件&#xff1b;②根据查询出的指定条件结果在执行…

solr-lucene的解释

什么是solr-lucene Solr是一个基于Apache Lucene的开源搜索平台。Lucene是一个开源的全文搜索引擎库&#xff0c;它提供了一个简单而强大的API&#xff0c;用于索引和搜索文档。Solr通过在Lucene的基础上构建一个更高级的搜索平台&#xff0c;为用户提供了更丰富的功能和易于使…

Unity VisionOS开发流程

Unity开发环境 Unity Pro, Unity Enterprise and Unity Industry 国际版 Mac Unity Editor(Apple silicon) visionOS Build Support (experimental) 实验版 Unity 2022.3.11f1 NOTE: 国际版与国服版Pro账通用&#xff0c;需要激活Pro的许可证。官方模板v0.6.2,非Pro版本会打…

灵途科技助力家电智能创新

从智能家电到个护健康&#xff0c;科技无时无刻不在刷新我们对智慧生活的认知&#xff0c;我们也从未像今天这样近距离贴近智慧生活的朴素本质——传感技术。灵途科技专注光电感知技术&#xff0c;持续为智能家电客户提供成熟的全方位感知解决方案。步入发展第八年&#xff0c;…

I2C系列(三):软件模拟I2C读写24C02

一.目标 PC 端的串口调试软件通过 RS-485 与单片机通信&#xff0c;控制单片机利用软件模拟 I2C 总线对 EEPROM&#xff08;24C02&#xff09; 进行任意读写。 二.硬件简述 2.1 24C02硬件参数 24C02器件地址为0x50&#xff0c;存储容量为256字节&#xff0c;存储单元地址位数…

DMA知识

提示&#xff1a;文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 前期疑问&#xff1a; 本文目标&#xff1a; 一、背景 2024年3月26日23:32:43 今天看了DMA存储器到存储器的DMA传输和存储器到外设的DMA实验&#xff0c;在keil仿真可以看到效果。还没有在protues和开发…

【文献分享】PY-Nodes 程序:使用 Nelder-Mead 的单纯形法在材料中搜索节点的从头开始的 Python 代码

题目&#xff1a;PY-Nodes: An ab-initio python code for searching nodes in a material using Nelder-Mead’s simplex approach 链接&#xff1a;Redirecting PY-Nodes&#xff1a;使用 Nelder-Mead 的单纯形法在材料中搜索节点的从头开始的 Python 代码 随着拓扑半金…

说说webpack的热更新是如何做到的?原理是什么?

文章目录 一、是什么二、实现原理三、总结参考文献 一、是什么 HMR全称 Hot Module Replacement&#xff0c;可以理解为模块热替换&#xff0c;指在应用程序运行过程中&#xff0c;替换、添加、删除模块&#xff0c;而无需重新刷新整个应用 例如&#xff0c;我们在应用运行过…