给定一个非负整数 numRows,生成「杨辉三角」的前 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) -> List[List[int]]: lst = [[1]] for i in range(numRows-1): prev = lst[-1] lst.append([m+n for m,n in zip([0]+prev, prev+[0])]) return lst
执行用时:32 ms, 在所有 Python3 提交中击败了 88.78% 的用户.
本文为 陈华 原创,欢迎转载,但请注明出处:http://ichenhua.cn/read/377
- 上一篇:
- 申请评分卡项目 P1 填补缺失值
- 下一篇:
- 申请评分卡项目 P2 处理异常值