算法(TS):杨辉三角

给定一个非负整数 numRows, 生成「杨辉三角」的前 numRows 行。在杨辉三角中,每个数都是其左上角和右上角的和

示例 1:

输入: numRows = 5

输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1

输出: [[1]]

提示: 1 <= numRows <= 30

解法

第一行固定为[1],第二行固定为[1,1],其余行中每个数的计算公式为 (prevRow[j] || 0) + (prevRow[j-1] || 0),第1行1个数,第2行2个数,第3行3个数,以此类推。

ts 复制代码
function generate(numRows: number): number[][] {
    const res = []
    
    for(let i = 0; i < numRows; i++) {
        if(i===0) {
            res.push([1])
            continue
        }
        if(i === 1) {
            res.push([1,1])
            continue
        }

        const nums: number[] = []
        const prevRow = res[i-1]
        for(let j = 0; j < i + 1; j++) {
            nums.push((prevRow[j] || 0) + (prevRow[j-1] || 0))
        }

        res.push(nums)
    }
    return res
};

时间复杂度O(numRows*numRows),空间负责度O(1)

相关推荐
闪电麦坤9510 分钟前
数据结构:二维数组(2D Arrays)
数据结构·算法
凌肖战23 分钟前
力扣网C语言编程题:快慢指针来解决 “寻找重复数”
c语言·算法·leetcode
浪裡遊25 分钟前
Sass详解:功能特性、常用方法与最佳实践
开发语言·前端·javascript·css·vue.js·rust·sass
埃菲尔铁塔_CV算法44 分钟前
基于 TOF 图像高频信息恢复 RGB 图像的原理、应用与实现
人工智能·深度学习·数码相机·算法·目标检测·计算机视觉
夏梦春蝉1 小时前
ES6从入门到精通:常用知识点
前端·javascript·es6
我想说一句2 小时前
当饼干遇上代码:一场HTTP与Cookie的奇幻漂流 🍪🌊
前端·javascript
NAGNIP2 小时前
一文搞懂FlashAttention怎么提升速度的?
人工智能·算法
南屿im2 小时前
基于 Promise 封装 Ajax 请求:从 XMLHttpRequest 到现代化异步处理
前端·javascript
杨进军2 小时前
前端线上问题的那些事儿
前端·javascript·前端框架