算法之“杨辉三角”题解
什么是“杨辉三角”,想必大家并不陌生~~
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
本篇带来两道“杨辉三角”题,小冲一波~~
题 1:给定一个非负整数
numRows
, 生成「杨辉三角」的前numRows
行。
复制代码
解题思路
思路简单,把握杨辉三角特点:第 0 行 1 个元素,第 1 行 2 个元素,第 2 行 3 个元素;依此例推
下一行元素和上一行元素的关系是(0 计数开始)以第 2 行第 1 列的元素 2 举例,等于上面 1+1(上一行同一列加上一行前一列元素)
JavaScript 实现
复制代码
题 2:给定一个非负索引
rowIndex
,返回「杨辉三角」的第rowIndex
**行。
复制代码
解题思路
巧用递归:
i 表示层级(rowIndex),第 i 层存在 i+1 个元素
j 表示当前层级的元素的位置
f[i][j] = (f[i - 1][j - 1] || 0) + (f[i - 1][j] || 0)
复制代码
OK,以上便是本篇分享~
我是掘金安东尼,输出暴露输入,技术洞见生活,再会~~
版权声明: 本文为 InfoQ 作者【掘金安东尼】的原创文章。
原文链接:【http://xie.infoq.cn/article/94db846115e02c8c043886eb7】。文章转载请联系作者。
评论