
leetcode题解118-杨辉三角
初始化处理:首先处理了三种特殊情况,确保小规模的numRows值能够正确返回。 二维数组初始化:创建了一个二维数组 填充矩阵:使用双重循环,从第2行开始,逐步填充每个元素的值,确保每个元素都是其左上方和右上方元素的和。 转换为列表:通过遍历二维数组,将其转换为多个列表,每个列表表示杨辉三角的一行。
发布日期:2025-04-05 04:53:41
浏览次数:9
分类:精选文章
本文共 1668 字,大约阅读时间需要 5 分钟。
杨辉三角的前numRows行生成
在杨辉三角中,每个数是它左上方和右上方的数的和。本题可以通过动态规划法来解决这个问题。以下是实现步骤:
特殊情况处理
- 当numRows为0时,返回空集合。
- 当numRows为1时,返回[[1]]。
- 当numRows为2时,返回[[1], [1,1]]。
动态规划法
- 初始化一个二维数组
nums
,其中nums[i][j]表示杨辉三角的第i行第j列元素。 - 第0行和第1行的值预先初始化为nums[0][0] = 1,nums[1][0] = 1,nums[1][1] = 1。
- 对于i >= 2的行,nums[i][0]和nums[i][i]设为1。
- 对于中间的j位置,nums[i][j] = nums[i-1][j-1] + nums[i-1][j]。
结果转换
- 将二维数组转换为列表形式,通过循环生成每一行的列表。
- 将结果按顺序添加到最终的结果列表中。
以下是具体代码实现:
import java.util.ArrayList;import java.util.List;public class Solution { public List
> generate(int numRows) { List
> lists = new ArrayList<>(); if (numRows == 0) { return lists; } if (numRows == 1) { List list = new ArrayList<>(); list.add(1); lists.add(list); return lists; } if (numRows == 2) { List list1 = new ArrayList<>(); list1.add(1); List list2 = new ArrayList<>(); list2.add(1); list2.add(1); lists.add(list1); lists.add(list2); return lists; } int[][] nums = new int[numRows][numRows]; nums[0][0] = 1; nums[1][0] = 1; nums[1][1] = 1; for (int i = 2; i < numRows; i++) { nums[i][0] = 1; nums[i][i] = 1; for (int j = 1; j < i; j++) { nums[i][j] = nums[i-1][j-1] + nums[i-1][j]; } } for (int i = 0; i < numRows; i++) { List list = new ArrayList<>(); for (int j = 0; j <= i; j++) { list.add(nums[i][j]); } lists.add(list); } return lists; }}
代码解释:
nums
,并预先初始化了对角线和第一列的元素。这个方法利用了动态规划的思想,通过逐步构建杨辉三角的每一行,确保了结果的正确性和效率。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月17日 19时52分08秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
laravel 验证机制validation
2025-04-04
Laravel5 容器自动加载依赖的原理
2025-04-04
laravel5.5 __Resource路由__RESTFul风格控制器
2025-04-04
Laravel5.5 集成 mPDF
2025-04-04
laravel5.5中添加对分页样式的修改上一页和下一页
2025-04-04
laravel5.5之模型操作数据库 — Eloquent ORM(实践)
2025-04-04
Laravel5.5开发规范 [ 个人总结 ]
2025-04-04
laravel5.5数据库迁移入门实践
2025-04-04
Laravel5.5添加新路由文件并制定规则
2025-04-04
Laravel5.5集成七牛云上传、管理(删除、查询)
2025-04-04
Laravel5.5集成极光推送_解决推送失败重推问题
2025-04-04
laravel中composer镜像服务的方式
2025-04-04
Laravel前后台+API路由分离架构(完善)
2025-04-04
Laravel渴求式加载
2025-04-04
Laravel集合探学系列——添加扩展macro策略(一)
2025-04-04
Laravel项目宝塔部署全攻略:从0到1的实战指南
2025-04-04
laravl 文件存储云存储
2025-04-04
LARGE_INTEGER
2025-04-04