算法(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)

相关推荐
摘星编程8 分钟前
React Native for OpenHarmony 实战:Linking 链接处理详解
javascript·react native·react.js
胖者是谁27 分钟前
EasyPlayerPro的使用方法
前端·javascript·css
EndingCoder34 分钟前
索引类型和 keyof 操作符
linux·运维·前端·javascript·ubuntu·typescript
小六子成长记38 分钟前
【C++】:搜索二叉树的模拟实现
数据结构·c++·算法
汉克老师41 分钟前
GESP2025年9月认证C++二级真题与解析(编程题1(优美的数字))
c++·算法·整除·枚举算法·求余·拆数
摘星编程1 小时前
React Native for OpenHarmony 实战:ImageBackground 背景图片详解
javascript·react native·react.js
Zevalin爱灰灰1 小时前
现代控制理论——第二章 系统状态空间表达式的解
线性代数·算法·现代控制
菜鸟233号2 小时前
力扣377 组合总和 Ⅳ java实现
java·数据结构·算法·leetcode
我是大咖2 小时前
二级指针与指针数组搭配
c语言·数据结构·算法
葫三生2 小时前
三生原理范畴语法表明中国哲学可为算法母语
人工智能·深度学习·算法·transformer