【LeetCode: 118. 杨辉三角 | 动态规划】

LeetCode118:杨辉三角(递归-动态规划) 杨辉三角 1、给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 2、在杨辉三角中,每个数是它左上方和右上方的数的和。 方法1: /** * 生成杨辉三角:在杨辉三角中,每个数是它左上方和右上方的数的和。 * 前两行都为1,从第三行开始,每行的除了头尾元素和结尾元素为1外,中间位置j的元素等于前一行j-1和j位置的元素之和。 * 用一个pre队列保存前一行元素,依次遍历生成杨辉三角。 * @param numRows * @return 阅读详情

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,优快云-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🚩 题目链接

⛲ 题目描述

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

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

在这里插入图片描述

示例 1:

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

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

提示:

1 <= numRows <= 30

🌟 求解思路&实现代码&运行结果


⚡ 动态规划

🥦 求解思路
  1. 先格式化杨辉三角的格式,杨辉三角的每一排左对齐,每一排的第一个数和最后一个数都是 1,其余数字,等于左上方的数,加上正上方的数。
  2. 具体实现代码如下所示:
🥦 实现代码
class Solution {
    public static List<List<Integer>> generate(int numRows) {
		List<List<Integer>> ans = new ArrayList<>();
		for (int i = 0; i < numRows; i++) {
			ans.add(new ArrayList<>());
			ans.get(i).add(1);
		}
		for (int i = 1; i < numRows; i++) {
			for (int j = 1; j < i; j++) {
				ans.get(i).add(ans.get(i - 1).get(j - 1) + ans.get(i - 1).get(j));
			}
			ans.get(i).add(1);
		}
		return ans;
	}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

信息学奥赛备赛必看:从杨辉三角的递推,到动态规划入门(以LeetCode 118为例) 本文深入解析杨辉三角的递推原理及其在动态规划中的应用,以LeetCode 118题为例,详细讲解从基础递推到动态规划的思想跃迁。内容涵盖C++和Python双语言实现、竞赛编程技巧、常见错误分析及性能优化策略,是信息学奥赛备赛和算法学习的实用指南。 阅读详情

相关推荐

Leetcode No.118 杨辉三角(动态规划)

一、题目描述 给定一个非负整数numRows,生成杨辉三角的前numRows行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 二、解题思路 杨辉三角具有以下性质: 1、每行数字左右对称,由 1开始逐渐变大再变小,并最终回到 1。 2、每个数字等于上一行的左右两个数字之和,可用此性质写出整个杨辉三角。即第 n行的第 i个数等于...

866

力扣热题100_动态规划_118_杨辉三角

力扣热题100_动态规划_118_杨辉三角

weixin_42504788的博客 572

避坑指南:为什么你的conda环境装不上Mamba?从CUDA到ABI的深度排查

本文深入解析conda环境中安装Mamba架构时常见的CUDA版本冲突、ABI不匹配等问题,提供从基础检查到深度排查的系统化解决方案。针对`causal-conv1d`和`mamba-ssm`安装失败场景,详细讲解PyTorch版本绑定、编译器工具链兼容性等关键技术要点,并给出预编译wheel选择、动态链接库配置等实用修复方案。

weixin_33738555的博客 345

LeetCode 118. 杨辉三角(动态规划思想详解 + Java Python 实现)

这篇文章详细讲解了LeetCode第118题"杨辉三角"的解题思路和实现方法。文章首先介绍了杨辉三角的基本性质,包括每行首尾为1、每个数字是上一行相邻两数之和等特点。然后重点阐述了动态规划的解法思路:逐行生成,每行首尾填充1,中间元素通过上一行相邻元素相加得到。作者提供了Java和Python两种实现代码,并进行了详细注释。文章还分析了时间复杂度(O(n²))和空间复杂度(O(1)),比较了数学公式法的优缺点,最后总结了动态规划思想在这道题中的应用。全文逻辑清晰,示例丰富,非常适合算法初学者理解杨辉三角的生

2603_95532426的博客 219

Versal - 从零构建Petalinux 2024.2 AI边缘计算平台(VD100+SDT+JupyterLab实战)

本文详细介绍了如何从零开始,基于AMD Versal VD100开发板和Petalinux 2024.2构建AI边缘计算平台。内容涵盖开发环境搭建、Petalinux工程创建与配置、SDT新流程实战、启动SD卡制作,并最终集成JupyterLab与Conda,打造出开箱即用的交互式AI开发环境,帮助开发者快速进行算法验证与部署。

5f4d3s2a1q的博客 487

如何在windows电脑上搭建Linux环境(手把手教安装虚拟机软件和使用云服务器)

手把手教学如何搭建Linux环境

纪宁的博客 1万+

(LeetCode 每日一题) 118. 杨辉三角 (数组、动态规划)

本文介绍了生成杨辉三角的三种语言实现(C++、Java、Go)。解题思路采用动态规划方法,时间复杂度为O(n^2)。核心算法是:每行首尾元素为1,中间元素等于上一行相邻两元素之和。三种实现均通过嵌套循环构建二维数组/列表:外层循环控制行数,内层循环计算每行元素值。C++使用vector容器,Java使用ArrayList,Go使用切片实现。代码结构相似,都体现了杨辉三角的数学规律和动态规划思想。

记录一些刷过的题并分享学习心得 423

TC3XX - MCAL知识点(一):新建Tc3xx EB-tresos工程

基于EB-tresos建立Hightec或者Tasking工程的时候,第一个步骤就是需要新建一个EB-tresos的工程,本文记录一下如何新建一个EB-tresos工程,以及对其进行简单的操作。那么Tc3xx的MCAL包含哪些内容呢?

梦想技术家 2966

LeetCode-118. 杨辉三角【数组 动态规划】

链接:https://leetcode.cn/problems/pascals-triangle/solutions/53504/qu-qiao-jie-fa-cuo-yi-wei-zai-zhu-ge-xiang-jia-28m/因此我们只要对最后一行单独处理:最后一行首、尾分别添加一个零然后对应位置求和就可以得到新的一行,思路上比较清晰,占用的时间、空间复杂度也都还挺好<(▰˘◡˘▰)输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]空间复杂度:O(1)

zik的博客 499

4、双足机器人mpc基础概念

机器人控制实际上不是连续的,是离散的,这就是控制信号的采样周期dt,一般每1ms对机器人发起一次控制信号。一般来说,dt越小,控制器的响应速度越快,但是由于预测的精度有限,如果控制时域过长,预测的误差会逐渐累积,导致控制器的性能下降。注意:1)在程序处理时,u的维度并不是由机器人的自由度确定的,是由其变量的个数及每个变量的空间维度确定,对于双足,采用力矩和力来控制,则u的维度是“2*2*3=12”。机器人实际运动过程中表现出来的状态x,x和xd是一致的,也包括运动速度ν、角速度ω、角度θ、位置p等。

1212

【YOLO系列】YOLOv12详解:模型结构、损失函数、训练方法及代码实现

本文提出YOLOv12,一种以注意力为中心的实时目标检测框架,通过创新性改进解决传统YOLO模型在精度与速度上的失衡问题。核心贡献包括:1)轻量混合注意力模块(LHA)结合通道与空间注意力,在不增加计算负担下提升特征提取能力;2)区域注意机制与R-ELAN网络优化特征聚合,显著改善小目标检测(AP_S提升8.3%);3)动态多光谱数据增强策略增强模型鲁棒性。实验表明,YOLOv12在COCO等基准上实现SOTA性能,同时保持2.1 TOPS/W的高能效比,适用于边缘设备部署。该工作为实时目标检测提供了新的注

一碗白开水一 1806

【力扣-动态规划入门】【第 12 天】118. 杨辉三角

标题:118. 杨辉三角 难度:简单 天数:第12天,第1/2题 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows = 1 输出: [[1]] 提示: 1 <= numRows <=

丶鹏 271

2026 AI Agent Harness Engineering 生态报告:开源工具链的现状与未来趋势

IEEE P2863-2025《通用人工智能自主代理技术架构与评估规范》于2025年11月正式发布,将AI Agent(通用人工智能自主代理)定义为:一种具备感知(Perception)、记忆(Memory)、推理(Reasoning)、规划(Planning)、行动(Action)五大核心能力闭环,能够在无显式指令覆盖全部环节的前提下,自主完成特定领域或开放领域复杂任务的智能实体。

AI 算法实战派 496

【Hot 100 刷题计划】 LeetCode 118. 杨辉三角 | C++ 动态规划题解

本文介绍了LeetCode第118题 杨辉三角 的解题思路和C++实现。杨辉三角的生成本质上是一个基础动态规划问题,遵循两个核心规则:边界元素恒为1,内部元素等于上方两数之和。文章通过图解说明推导过程,并给出C++代码实现,使用二维数组模拟,外层循环处理行数,内层循环处理每行元素,分别处理边界条件和状态转移方程。该解法时间复杂度为O(n²),空间复杂度为O(n²)。

qq_51233453的博客 260

基于YOLOv5的仪表读数识别系统:从检测到识别的完整解决方案

随着工业自动化水平的不断提高,仪表读数识别技术在电力系统、石油化工、智能制造等领域发挥着越来越重要的作用。本文提出了一种基于YOLOv5的仪表自动读数识别系统,该系统能够有效区分指针式和数字式仪表,并实现高精度的读数识别。我们详细介绍了系统的整体架构、数据集构建、模型训练策略以及用户界面设计,并提供了完整的代码实现。实验结果表明,本系统在仪表检测和读数识别任务上均取得了优异的表现,为工业现场的自动化监控提供了可靠的技术支持。关键词:仪表读数识别;YOLOv5;目标检测;深度学习;工业自动化。

YOLO 676

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【动态规划】Leetcode 118. 杨辉三角【简单】

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。

FLGB 564

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

leetcode刷题 118. 杨辉三角,Easy (Java)动态规划的图形解释

leetcode刷题 118. 杨辉三角,Easy (Java)动态规划的图形解释

Sueko的博客 429

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Leetcode 118. 杨辉三角(动态规划)

描述 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] Solution 动态规划递推。 class Solution: def generate(self, n...

sunlanchang的博客 418

leetcode 118.杨辉三角 119.杨辉三角 ||(动态规划、List、java)

动态规划复用计算。官答。除去==0的特殊情况,其他情况都包含第一行。 class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> triangle = new ArrayList<List<Integer>>(); // First base case; if user reque

palepale 254

力扣HOT100之动态规划:118. 杨辉三角

2.确定递推公式:dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];3.dp数组初始化:dp[i][0] = 1, dp[i][i] = 1。我们在初始化的时候就先将每一行的第一个元素和最后一个元素赋值为。1.确定dp[i][j]的含义:杨辉三角中第i行第j列的值。,然后就进入循环迭代,不断更新每个位置的值即可。4.确定遍历顺序:从左往右,从上往下遍历。5.打印数组(省略)

weixin_52151595的博客 331

80.杨辉三角(力扣118)

【代码】80.杨辉三角(力扣118)

m0_51386664的博客 424

LeetCode——动态规划(dp)_118. 杨辉三角

118. 杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows = 1 输出: [[1]] 提示: 1 <= numRows <= 30 来源:力扣(LeetCode) 这是一道动态规划的经典入门题!!! 关于动态规划是思路可以去看我那

kimitoLMT的博客 256

LeetCode 118. 杨辉三角 - 动态规划与组合数学详解

题目描述:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。杨辉三角的每个元素等于其上一行相邻两元素之和,且每行两端元素为 1。原题链接:https://leetcode.cn/problems/pascals-triangle/难度等级:Easy相关标签:数组、动态规划、组合数学、滚动数组| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |

m0_52114506的博客 557

【LeetCode每日一题】动态规划问题:118. 杨辉三角 279. 完全平方数 322. 零钱兑换

118. 杨辉三角 279. 完全平方数 322. 零钱兑换

2301_80103998的博客 240

0动态规划简单 LeetCode118. 杨辉三角

118. 杨辉三角 描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> res = new ArrayList<>(); for(int i = 0;

31楼下小黑的博客 164

杨辉三角 力扣118

给定一个非负整数 numRows生成「杨辉三角」的前 numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。[[1]]

qq_65031432的博客 359
上一篇: 【LeetCode: 3158. 求出出现两次数字的 XOR 值 | 模拟】
下一篇: 【LeetCode: 119. 杨辉三角 II | 动态规划】
硕风和炜
硕风和炜 优质创作者: Java技术领域 优质创作者: Java技术领域
博客等级 码龄7年 2万+粉丝 1024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值