118. 杨辉三角
<递归>
题目描述
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
我的思路 - 递归
class Solution: def generate(self, numRows: int) : def resolve(row,base): if row>=numRows: return base layer = [1]+[base[-1][i]+base[-1][i+1] for i in range(len(base[-1])-1)]+[1] base.append(layer) return resolve(row+1,base) ret = [[1],[1,1]] if numRows<=2: return ret[:numRows-1] return resolve(2,ret)
-
算法:
- 每次递归把整个杨辉三角代进去
- 根据最后一行来推出下一行,并加入结果中
- 递归结果
-
需要优化的地方
- 每次递归都会代入整个杨辉三角
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步