leetcood学习笔记-118-杨辉三角

题目描述:

第一次提交:

class Solution:
    def generate(self, numRows: int):
        l = []
        for i in range(numRows):
            n = [1]*(i+1)
            if len(n)>2:
                #pre = [1,1]
                for j in range(1,len(n)-1):
                    n[j] = pre[j-1]+pre[j]
            #l.append([n])
            l+=[n]
            pre = n
        return l

方法二:

def generate(self, numRows: int) -> List[List[int]]:
        # 先生成一个全部为1的金字塔,列表推导时用了一点点小技巧
        a = [[1 for j in range(0,i+1)] for i in range(numRows) ]
        # 然后双重循环遍历整个金字塔,一个元素等于其两肩和
        for i in range(2,len(a)):
            for j in range(1,i):
                a[i][j] = a[i-1][j-1] + a[i-1][j]
        return a

猜你喜欢

转载自www.cnblogs.com/oldby/p/10539085.html