题目如下:
看到这个贴心的动画,我第一时间想到的就是动态规划,动画里下面的数是上面的两个相邻数的和,所以我一半用“伪动态规划”,利用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
用c语言的话可能就要纯动态规划了,明天再写吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)