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))

递归的代码简洁,但我却很难理解
递归有不同的形式,前几天的都是比较基础的题目,但我都无法自己完成,略有变化自己就想不出来,只能抄答案了。

今天的杨辉三角形,一看形式就应该想到,是一个二维数组(但我根本没想到)
前面的几行是通过递归生成,最后一行通过列表推导式得出
最后再组合在一起。

上一篇下一篇

猜你喜欢

热点阅读