118. 杨辉三角
问题描述
https://leetcode.cn/problems/pascals-triangle/description/
解题思路
杨辉三角可以用动态规划来解决,但它的解题思路跟一般的DP不一样,一般的DP只有一个数组,它牵扯到多个数组。
它的状态转移方程是:res[cur][j] = res[cur-1][j-1]+res[cur-1][j]
而它的边界条件是,它只计算两边,不计算中间。
代码
class Solution: def generate(self, numRows: int) -> List[List[int]]: if numRows == 1: return [[1]] if numRows == 2: return [[1], [1,1]] res = [[1], [1,1]] for i in range(3, numRows+1): cur_res = [1 for j in range(i)] for j in range(1, len(cur_res)-1): cur_res[j] = res[-1][j-1]+res[-1][j] res.append(cur_res) return res
代码二
class Solution: def generate(self, numRows: int): res = [[1]] if numRows == 1: return res for i in range(2, numRows + 1): tmp_row = [1] * i for j in range(1, i-1): tmp_row[j] = res[-1][j-1] + res[-1][j] res.append(tmp_row) return res
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)