119. Pascal's Triangle II

题目

Given a non-negative index k where k ≤ 33, return the kth k t h index row of the Pascal’s triangle.

Note that the row index starts from 0.

In Pascal’s triangle, each number is the sum of the two numbers directly above it.

Example:

Input: 3
Output: [1,3,3,1]

Follow up:

Could you optimize your algorithm to use only O(k) extra space?

代码

def getRow(rowIndex):
    """
    :type rowIndex: int
    :rtype: List[int]
    """
    # 整个三角形左右是对称的,上一行左边加0,上一行右边加0,两个加起来就是下一行
    row = [1]
    print([0]+row)
    print(row+[0])
    for _ in range(rowIndex):
        row = [x + y for x, y in zip([0] + row, row + [0])]
        print(row)
    return row

def getRow2(rowIndex):
    """
    :type rowIndex: int
    :rtype: List[int]
    """

    cur = [1] * (rowIndex + 1)
    for i in range(1, rowIndex + 1):# 1234
        print("i==",i)
        for j in range(i - 1, 0, -1):# 2 0 -1
            print("j==",j)
            cur[j] = cur[j] + cur[j - 1]
            print(cur)

    return cur



 def getRow3(rowIndex):
        res=[[1]]
        for i in range(1,rowIndex+1):
            res+=[map(lambda x,y:x+y,res[-1]+[0],[0]+res[-1])]
        return res[rowIndex]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值