每日一练python13

题目:(杨辉三角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)

猜你喜欢

转载自blog.csdn.net/qq_52669357/article/details/121364826