
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言问题描述:给定一个整数n,编写一个函数来生成其杨辉三角的前n行。 分析解答: 杨辉三角,也叫帕斯卡三角,是一个端点和斜边都是1,其余位置上的数等于它上面两个数之和的一个三角形。如下图所示。
def generateRows(numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
res = []
for i in range(numRows):
row = [1] * (i + 1)
for j in range(1, i):
row[j] = res[-1][j - 1] + res[-1][j]
res.append(row)
return res
函数接受一个参数numRows,表示杨辉三角的行数,返回一个二维列表。我们定义一个空列表res,用于存储杨辉三角的行。然后使用一个for循环来遍历行数,对于每一行,都需要生成一个长度为i+1的列表row,并赋初值1。 再使用一个for循环来遍历除了首位之外的元素,利用上一行的值求当前行的值。最后将当前行row添加到res中,并返回res。 下面是该函数的运行结果,当输入numRows=5时,输出的杨辉三角的前5行。
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
总结: 本题可以使用Python编写一个生成杨辉三角的函数,通过循环遍历来生成每一行的值,代码简单易懂,容易理解。