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)
-
算法:
- 每次递归把整个杨辉三角代进去
- 根据最后一行来推出下一行,并加入结果中
- 递归结果
-
需要优化的地方
- 每次递归都会代入整个杨辉三角

浙公网安备 33010602011771号