目录
一、题目内容
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
二、解题思路
没啥说的,逐行邻近元素相加即可,两端的1可单独加入。
三、代码
-
class Solution:
-
def generate(self, numRows: int):
-
"""
-
:param numRows: int
-
:return: List[List[int]]
-
"""
-
if not numRows:
-
return []
-
-
def Triangle(array):
-
tmp = []
-
for i in range(len(array) + 1):
-
if i == 0:
-
tmp.append(1)
-
elif i == len(array):
-
tmp.append(1)
-
else:
-
tmp.append(array[i - 1] + array[i])
-
return tmp
-
-
ans = []
-
tmp = [1]
-
ans.append(tmp)
-
for _ in range(0, numRows - 1):
-
tmp = Triangle(ans[-1])
-
ans.append(tmp)
-
return ans
-
-
-
if __name__ == '__main__':
-
n = 5
-
s = Solution()
-
ans = s.generate(n)
-
print(ans)
文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。
原文链接:nickhuang1996.blog.csdn.net/article/details/110749181