美文网首页前端大杂烩
每日一算法:杨辉三角形

每日一算法:杨辉三角形

作者: lio_zero | 来源:发表于2022-05-28 17:24 被阅读0次

杨辉三角形(pascal triangle),又称帕斯卡三角形,是二项式系数的三角形数组。

杨辉三角形

根据推断的可用表示式为:

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 相关的链表题目

更多资料

相关文章

网友评论

    本文标题:每日一算法:杨辉三角形

    本文链接:https://www.haomeiwen.com/subject/bktjdrtx.html