🧠 Python小练习系列 Vol.9:杨辉三角生成(数组构建 + 数学组合)
🔺 本期我们带来一道简洁却优雅的经典练习 —— 生成杨辉三角,是训练数组操作与组合思想的绝佳题目!

🧩 一、题目描述
给定一个非负整数 numRows,生成对应的杨辉三角的前 numRows 行。
示例:
输入: numRows = 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
🧠 二、解题思路
杨辉三角的性质:
- 每一行第一个和最后一个数字都是
1 - 中间的数字等于上一行的两个数字之和:
res[i][j] = res[i-1][j-1] + res[i-1][j]
👨💻 三、Python代码实现
def generate(numRows):
res = []
for i in range(numRows):
row = [1] * (i + 1)
for j in range(1, i):
row[j] = res[i-1][j-1] + res[i-1][j]
res.append(row)
return res
📌 四、运行示例
triangle = generate(5)
for row in triangle:
print(row)
输出:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
🧩 五、小结与要点
| 点 | 说明 |
|---|---|
| 构造方法 | 逐行递推,首尾填 1,中间相加 |
| 数据结构 | 使用二维数组保存每行结果 |
| 灵活扩展 | 可以扩展为打印第 k 行、格式化输出等 |
💡 六、进阶拓展
- 🧠 输出杨辉三角的第
k行? - 📐 用空格对称打印出金字塔形?
- ⏱️ 使用组合数公式
C(n, k)直接构造一行?
❤️ 结语
杨辉三角背后的组合学原理,蕴藏着数学之美。实现它,不止是代码,更是对模式的观察与表达!
📌 下一期预告:括号插入匹配(表达式构造 + 回溯)
👉 点个赞 👍 + 收藏 🌟,一起来感受代码和数学的浪漫!
&spm=1001.2101.3001.5002&articleId=146705002&d=1&t=3&u=4a51e8abf92c4635be3b99762146794b)
1万+

被折叠的 条评论
为什么被折叠?



