【新手上路】LeetCode刷题之“杨辉三角”

题目如下:

【新手上路】LeetCode刷题之“杨辉三角”

看到这个贴心的动画,我第一时间想到的就是动态规划,动画里下面的数是上面的两个相邻数的和,所以我一半用“伪动态规划”,利用Python的插入语法,从第三层开始由前面的层来递推。

class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        if numRows == 1:
            return [[1]]
        if numRows == 2:
            return [[1],[1,1]]   #第一种和第二种情况直接返回
        result = [[1],[1,1]]
        for i in range(2,numRows):  #之后的情况由前面递推
            result.append([1,1])
            for j in range(i-1):
                result[i].insert(j+1,result[i-1][j]+result[i-1][j+1])
                #这个表达式只要稍微找一下关系即可
        return result

【新手上路】LeetCode刷题之“杨辉三角”

 

用c语言的话可能就要纯动态规划了,明天再写吧。

上一篇:【思特奇杯·云上蓝桥-算法集训营】第二周


下一篇:execjs执行js编码错误的解决方法(UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 20: illegal )