题目
给定一个非负整数 numRows, 生成杨辉三角的前 numRows 行.
在杨辉三角中, 每个数是它左上方和右上方的数的和.
示例:
输入: 5
输出:
- [
- [1],
- [1,1],
- [1,2,1],
- [1,3,3,1],
- [1,4,6,4,1]
- ]
解答
- class Solution:
- # Time: O(N^2),Space: O(N^2),N 为 numRows, 题解也是 O(N^2)
- def generate(self, numRows):
- if numRows == 0:
- return []
- if numRows == 1:
- return [[1]]
- if numRows == 2:
- return [[1], [1, 1]]
- a = [
- [1],
- [1, 1]
- ]
- for x in range(2, numRows):
- a.append([])
- a[x].append(1)
- for i in range(x-1):
- a[x].append(a[x-1][i]+a[x-1][i+1])
- a[x].append(1)
- return a
- s = Solution()
- print(s.generate(5))
来源: http://www.bubuko.com/infodetail-3358738.html