题目:(杨辉三角2)给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: rowIndex = 3 输出: [1,3,3,1]
示例 2:输入: rowIndex = 0 输出: [1]
示例 3:输入: rowIndex = 1 输出: [1,1]
提示:
0 <= rowIndex <= 33
程序说明:
1、代码先对数组进行了一个杨辉三角排序,最后直接返回rowIndex索引所在数组位置元素
2、程序中的杨辉三角排序,运用了zip函数(zip函数定义:从参数中的多个迭代器元素组合成一个新的迭代器,返回一个zip对象,其内部元素为元组,可以转化为列表或元组。当zip()函数中只有一个参数时,它会此参数中依次取一个元组,组成一个元组)
3、杨辉三角有这样一种规律:一组数组错位加上自己会得到下一组数组,即如图,因此我们可以在其前后分别添上一个0,然后将其相加
全部代码:
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
res = [[1]]
while len(res)<=rowIndex+1:
numrows = [a+b for a, b in zip([0]+res[-1], res[-1]+[0])]
res.append(numrows)
return res[rowIndex]
运行结果:
来源:力扣(leetcode)