Leetcode 118. 杨辉三角

心路历程:

其实最直观的想法是可以直接按照从上到下的顺序遍历数组,依次计算数组的值即可,相当于DP表格的初始化。

但是也可以从递归的角度进行思考,@cache yyds。

注意的点:

1、注意第二层循环col应该是[0, line+1)

解法:动态规划

python 复制代码
class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        @cache
        def dp(i, j): # 返回第i行,第j个元素的值
            if i == 0: return 1
            if j == 0 or j == i: return 1
            return dp(i-1, j-1) + dp(i-1, j)
        res = []
        for line in range(numRows):
            temp = []
            for col in range(line+1):  # 第二层循环注意别写错了
                temp.append(dp(line, col))
            res.append(temp)
        return res
相关推荐
道影子18 分钟前
《道德经》031兵者不祥,胜以丧礼处之
人工智能·深度学习·算法
花生了什么事o22 分钟前
分布式 ID 生成方案:从数据库自增到雪花算法
数据库·分布式·算法
king_linlin22 分钟前
算法基础——算法复杂度
c语言·开发语言·数据结构·算法
king_linlin1 小时前
数据结构——顺序表(附图文讲解|超详细)
c语言·数据结构·算法
GAOJ_K1 小时前
老旧产线弧形导轨换新:同规格替换避坑选型思路
人工智能·算法·机器学习·制造·导轨偏磨
Jerry6 小时前
LeetCode 189. 轮转数组
算法
Jerry7 小时前
LeetCode 739. 每日温度
算法
2601_9545267511 小时前
【工业传感与算法实战】温漂补偿与零点抗漂破局:基于二阶多项式拟合的 C/C++ 边缘校准算法,深度拆解“压力变送器什么牌子好”的技术硬指标
c语言·c++·算法
叩码以求索12 小时前
浅谈:算法萌新如何高效刷题应对面试(一)
算法·面试·职场和发展
c2385614 小时前
把 C++ 内存分配拆透:new 与 malloc 的三层血缘
开发语言·c++·算法