LeetCode 118 杨辉三角 Pascal's Triangle 题解与思路
给定非负整数numRows,生成杨辉三角的前numRows行。每行首尾固定为1,中间每个数等于其左上方与右上方两数之和。返回二维列表,行数从1到numRows,第i行有i个数。
118:Pascal's Triangle 杨辉三角
Given a non-negative integer numRows, generate the first numRows rows of Pascal's triangle.
给定一个非负整数 numRows,请生成杨辉三角的前 numRows 行。

In Pascal's triangle, each number is the sum of the two numbers directly above it.
在杨辉三角中,除每行首尾为 1 外,其余每个数字都等于它左上方和右上方两个数字之和。
Example:
Input: 5Output:[ [1],[1,1], [1,2,1],[1,3,3,1], [1,4,6,4,1]]
解题思路:
这道杨辉三角算法题的关键规律非常清晰:第一行是 1,之后每一行的首位和末位也都固定为 1。中间位置的元素则通过上一行递推得到,即当前值等于上一行同列元素与前一列元素之和。用下标来表示,就是位置 (m,n) 的值等于 (m-1,n) 与 (m-1,n-1) 的和。只要掌握这个递推公式,生成 Pascal's Triangle 的代码实现就会非常直接。
ja va:
class Solution {public List> generate(int numRows) {List> triangle = new ArrayList>();if(numRows == 0) return triangle;List one = new ArrayList();one.add(1);triangle.add(one);if(numRows == 1) return triangle;for (int i=1;i row = new ArrayList();row.add(1);for (int j=1;j prev = triangle.get(i-1);row.add(prev.get(j-1) prev.get(j));}row.add(1);triangle.add(row);}return triangle;}}
python:
class Solution:def generate(self, numRows: int) -> List[List[int]]:if numRows==0:return []triangle=[[1]]if numRows==1: return trianglefor i in range(1,numRows):tmp=[1]for j in range(1,i):tmp.append(triangle[i-1][j-1] triangle[i-1][j])tmp.append(1)triangle.append(tmp)return triangle
总结:
总体来看,这是一道非常基础的 LeetCode 杨辉三角题目,适合用来练习二维数组、列表嵌套结构以及循环构造过程。实现时可以先单独处理边界情况,比如 numRows == 0 和 numRows == 1,这样主循环逻辑会更清晰。虽然也可以把首行处理合并进循环,例如在内层逻辑中加入if(i!=0) row.add(1);triangle.add(row);这类写法,但每次循环都额外判断一次条件,可读性和整洁度反而略差。从代码优化和结构清晰的角度来说,把特殊情况放在循环外处理通常更合适。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
CAD零基础入门教程:坐标输入、图层管理与基础绘图命令
本文面向CAD零基础学习者,系统讲解坐标输入、图层管理与基础绘图命令的核心用法。通过分步实操与常见问题排查,帮助新手建立精确绘图习惯,掌握规范出图的基础能力。
CAD从入门到项目交付:绘图、标注、图块与实战工作流
掌握CAD的核心在于建立“画得准、标得清、复用快、交付稳”的工作流。本文提供从环境设置、高频命令组合、标注规范、图块标准化到项目分阶段交付的完整路径,帮助初学者避免常见返工陷阱,独立完成可检查、可复用、可打印的工程图纸。
Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤
本文详细解析 Claude Code 登录前的账号类型区分方法,涵盖个人订阅、Teams 席位与企业 Enterprise 席位的授权路径差异。提供终端登录命令、环境变量排查及常见异常处理步骤,帮助用户快速完成正确授权并避免登录路径混淆。
Claude Code 文件修改前的权限模式配置与命令审批指南
本文详细介绍Claude Code在修改文件前的权限模式配置方法,包括defaultMode可选值、permissions allow与deny规则设置、多层级配置文件管理以及 status验证技巧,帮助开发者安全高效地使用AI编程助手。
Claude Code接入VS Code后先测扩展和终端命令
在VS Code中接入Claude Code后,建议优先验证扩展面板与集成终端两条入口。本文提供标准检查顺序、关键命令与常见故障排查路径,帮助你快速确认环境就绪,避免后续开发受阻。
- 热门数据榜
相关攻略
2026-09-01 16:53
2026-09-01 16:52
2026-09-01 14:27
2026-09-01 14:12
2026-09-01 14:10
2026-09-01 14:07
2026-09-01 13:55
2026-09-01 13:47
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

