每日一算法:杨辉三角形
2022-05-28 本文已影响0人
lio_zero
杨辉三角形
根据推断的可用表示式为:
C(lineNumber, i) = C(lineNumber, i - 1) * (lineNumber - i + 1) / i
JavaScript 实现
- 第一行默认为 1,第 n 行的个数需要在 n 的基础上加 1
- 进行循环,每一行的每个条目都是通过将左上方的数字与右上方的数字相加来构建的,如果没有将视为为 0。
const pascalTriangle = (lineNumber) => {
const currentLine = [1]
const currentLineSize = lineNumber + 1
for (let i = 1; i < currentLineSize; i++) {
currentLine[i] = (currentLine[i - 1] * (lineNumber - i + 1)) / i
}
return currentLine
}
pascalTriangle(0) // [1]
pascalTriangle(1) // [1, 1]
pascalTriangle(2) // [1, 2, 1]
pascalTriangle(3) // [1, 3, 3, 1]
pascalTriangle(4) // [1, 4, 6, 4, 1]
Leetcode 相关的链表题目
更多资料
- pascal-triangle
- pascals-triangle 可视化杨辉三角形演示