Day 24递归生成杨辉三角形
2020-06-20 本文已影响0人
快乐的老周
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
class Solution():
def generate(self,numRow):
if numRow == 1:
return [[1]]
yanghui = self.generate(numRow -1)
last_row = [1] + [yanghui[-1][i-1]+ yanghui[-1][i] for i in range(1, numRow-1)] + [1]
yanghui.append(last_row)
return yanghui
s = Solution()
print(s.generate(8))
递归的代码简洁,但我却很难理解
递归有不同的形式,前几天的都是比较基础的题目,但我都无法自己完成,略有变化自己就想不出来,只能抄答案了。
今天的杨辉三角形,一看形式就应该想到,是一个二维数组(但我根本没想到)
前面的几行是通过递归生成,最后一行通过列表推导式得出
最后再组合在一起。