【5分钟力扣】118.杨辉三角 python

article/2025/8/27 22:20:47

文章目录

    • 一、题目
    • 二、解题思路
    • 三、三种解题示例

一、题目

在这里插入图片描述

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

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

示例:

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

二、解题思路

本题本质上是一个动态规划题,杨辉三角需要用前一行的值来构造后一行的值,思路很简单,主要是找规律。

首先我们先考虑三种特殊情况:

分别是numRows等于0,1和2

其次考虑numRows >=3的情况,也就是每行首尾的值都为1,中间值是:
a [ i ] [ j ] = a [ i − 1 ] [ j − 1 ] + a [ i − 1 ] [ j ] a[i][j]=a[i-1][j-1]+a[i-1][j] a[i][j]=a[i1][j1]+a[i1][j]

三、三种解题示例

1、常规方法

class Solution:def generate(self, numRows: int) -> List[List[int]]:nums = []for row_num in range(numRows):Row = [1 for _ in range(row_num+1)]for i in range(1, len(Row)-1):Row[i] = nums[row_num-1][i-1] + nums[row_num-1][i]nums.append(Row) return nums

2、递归方法

class Solution:def generate(self, numRows: int) -> List[List[int]]:if numRows == 0: return [] # 等于0情况if numRows == 1: return [[1]] # 等于1情况s = self.generate(numRows-1) # 递归调用s.append([1] + [s[-1][i-1]+s[-1][i] for i in range(1,len(s))] + [1])return s

3、动态规划


class Solution:def generate(self, numRows: int) -> List[List[int]]:nums = [[1]*(i + 1) for i in range(numRows)] # 列表推导式生成储存1的列表n = 2 while n < numRows: # 从第三行开始遍历每一行for i in range(1, len(nums[n]) - 1): nums[n][i] = nums[n - 1][i - 1] + nums[n - 1][i]n += 1 return nums 

http://chatgpt.dhexx.cn/article/SIMM2718.shtml

相关文章

蓝桥杯-杨辉三角形-python

题目 可以结合目录来理解文章~ 原始方法 这个方法可以拿到40分。N数值比较大的时候&#xff0c;运行时间会超过限制。 思路 逐行生成杨辉三角&#xff0c;找到了需要的N以后就停止循环&#xff0c;并输出对应的位置。 变量解释 用于计算N的位置的公式如下&#xff1a; po…

第十二届蓝桥杯 杨辉三角形 Python题解 满分

原地址https://artrajz.cn/index.php/archives/32/ 前言 其实道题在寒假的时候就做了&#xff0c;现在有机会发出来了。(〃‘▽’〃) 题目 思路 参考了大佬斜行查找的思路&#xff0c;为了便于观察和叙述&#xff0c;我把杨辉三角形如图排一下 1 1 1 1 2 1 1 3 3 …

python杨辉三角居中_利用python打印杨辉三角

用python打印杨辉三角 介绍 杨辉三角&#xff0c;是初高中时候的一个数列&#xff0c;其核心思想就是说生成一个数列&#xff0c;该数列中的每一个元素&#xff0c;都是之前一个数列中&#xff0c;同样位置的元素和前一个元素的和。 正好在python中&#xff0c;也就是生成一…

杨辉三角形(Python)

杨辉三角形的规则就是每行的第一个数字和最后一个数字为1之外&#xff0c;其余每个数字等于上一行对应两个数字的和。 1、使用二维数组实现 def triangle(row):result []for i in range(row):if i 0: # 第一行result.append([1])elif i 1: # 第二行result.append([1,1])e…

杨辉三角Python解法

给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 例&#xff1a; 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 解析&#xff1a; 大于等于2行以后&#x…

pythonfor杨辉三角,python实现杨辉三角 python实现杨辉三角的几种方法代码实例

想了解python实现杨辉三角的几种方法代码实例的相关内容吗&#xff0c;看&#xff0c;月亮在跳舞在本文为您仔细讲解python实现杨辉三角的相关知识和一些Code实例&#xff0c;欢迎阅读和指正&#xff0c;我们先划重点&#xff1a;python实现杨辉三角,python杨辉三角实现方法&am…

【完美解析】蓝桥杯 省赛 杨辉三角形 python组 找规律+二分查找+组合数

题目 看到最后如果还不懂你来打我~ 分析 我们看到杨辉三角形很容易想到一个数的值等于它肩膀两个数的和。为此&#xff0c;可以不断通过前一行的数求出后一行的数&#xff0c;重复上面操作&#xff0c;直到找到目标为止。但是看了用例规模后发现其涉及到十的九次方&#xff0…

【基础】杨辉三角python题解

题目 1231: 杨辉三角 时间限制: 1Sec 内存限制: 128MB 提交: 2261 解决: 750 题目描述 还记得中学时候学过的杨辉三角吗&#xff1f;具体的定义这里不再描述&#xff0c;你可以参考以下的图形&#xff1a; 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 输入 输入数据包含多个…

杨辉三角形 python

class CircleQueue(object):def __init__(self,max50):# 队列最大容量self.max max# 存储队列元素的数组self.data [None for i in range(self.max)]# 队首指针self.front 0# 队尾指针self.rear 0def empty(self)::Desc判队空:return:如果队为空&#xff0c;返回True如果队…

蓝桥杯 省赛 杨辉三角形 python组(转)

# 求组合数 def C(a, b): # a为上限&#xff0c; b为下限res 1for i in range(a):res * b / a# 当结果大于目标值时无需继续运算&#xff0c;提高效率if res > target:return resb - 1a - 1return res# 二分查找目标元素 def search(k):# 起始下限&#xff0c;也就是对称轴…

蓝桥杯真题 杨辉三角形 python

专栏《蓝桥杯题目》 目录 【问题描述】 【输入格式】 【输出格式】 【样例输入】 【样例输出】 【评测用例规模与约定】 省流版本&#xff1a; 题目解析&#xff1a; 综上所述&#xff0c;写成代码如下所示&#xff1a; 【问题描述】 下面的图形是著名的杨辉三角形&#xff1a…

杨辉三角(Python)

杨辉三角性质: 每行首位数字都是1每行中间的各项数字都是它肩上两个数字的和第n行的数字有n个第n行的项数总比第n-1行多一个 解题思路: input来读取用户输入的行数。创建两个列表list1和list2,list1用于存放最后的结果(结果是二维列表),list2用于存放每一行的数字。根据性质输…

杨辉三角 Python(简单易懂)

杨辉三角&#xff08;最简单易懂&#xff09; 题目 编写两个函数&#xff0c;一个函数接收一个整数num为参数&#xff0c;生成杨辉三角形前num行数据&#xff0c;另一个函数接收生成的杨辉三角形并按以下形式输出&#xff0c;如图所示。 在图中&#xff0c;列出了杨辉三角形的…

MQ3

编者按】关于MQ&#xff0c;我以前只是有个大概概念。譬如之前&#xff0c;就是根据前端送过来的消息&#xff0c;format成后端所需要的消息格式&#xff0c;并将format后的消息放入一个Queue文件中&#xff0c;如果消息发送成功&#xff08;收到该request成功或者失败的respon…

MQ详解及四大MQ比较

一、消息中间件相关知识 1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能&#xff0c;成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件&#xff0c;如老牌的ActiveMQ、RabbitMQ&a…

1.MQ介绍

什么是MQ mq&#xff08;message queue&#xff09;&#xff1a;面向消息的中间件&#xff08;message-oriented middleware&#xff09;是指利用高效可靠的消息传递机制与平台无关的数据交流&#xff0c;并基于数据通信来进行分布式系统的集成。 通过提供消息传递和消息排队…

RabbitMQ管理平台与主流MQ框架

目录 1. 什么是MQ 2. 应用场景 3. 主流MQ框架 4. Docker安装部署RabbitMQ 参数说明&#xff1a; 5. RabbitMQ管理平台 6. MQ的核心概念 7. springboot整合rabbitmq 7.1.安装好rabbitmq&#xff0c;登陆RabbitMQ管理平台&#xff0c;新增管理用户并设置权限 7.2.pom.xml添…

MQ高级(四)MQ集群

一、集群分类 RabbitMQ的是基于Erlang语言编写&#xff0c;而Erlang又是一个面向并发的语言&#xff0c;天然支持集群模式。 RabbitMQ的集群有两种模式&#xff1a; &#xff08;1&#xff09;普通集群&#xff1a;是一种分布式集群&#xff0c;将队列分散到集群的各个节点&…

MQ-2烟雾传感器解析

一、工作原理 可用于家庭和工厂的气体泄漏监测装置&#xff0c;适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。故因此&#xff0c;MQ-2可以准确来说是一个多种气体探测器。MQ-2的探测范围极其的广泛。它的优点&#xff1a;灵敏度高、响应快、稳定性好、寿命长、驱动电路简…

MQ2

死信队列 什么是死信队列 一般来说&#xff0c;producer将消息投递到queue中&#xff0c;consumer从queue取出消息进行消费&#xff0c;但某些时候由于特定的原因导致queue中的某些消息无法被消费&#xff0c;这样的消息如果没有后续的处理&#xff0c;就变成了死信(Dead Lett…