【LEETCODE】118-Pascal's Triangle

来源:互联网 发布:大数据时代与信息安全 编辑:程序博客网 时间:2024/05/17 23:29

Given numRows, generate the first numRows of Pascal's triangle.

For example, given numRows = 5,

Return

[

     [1],

    [1,1],

   [1,2,1],

  [1,3,3,1],

 [1,4,6,4,1]

]


题意:

给一个数字,返回行数等于此数的 帕斯卡三角形


帕斯卡三角形的定义:

https://en.wikipedia.org/wiki/Pascal%27s_triangle

百度百科:

是一个三角形矩阵,其顶端是 1,视为(row0).

第1行(row1)(1&1)两个1,这两个1是由他们上头左右两数之和 (不在三角形内的数视为0)




思路:

r每次首尾加0,

s每次由r计算出第row行的数组,

r更新成s,并append到ans上


class Solution(object):    def generate(self, numRows):        """        :type numRows: int        :rtype: List[List[int]]        """        ans=[]        r=[1]                if numRows==0:            return ans                    ans.append(r)                if numRows==1:            #r=[1]            return ans                #r=[1]        #ans.append(r)                for row in range(2,numRows+1):        #控制一共生成numRows个数组            r=[0]+r+[0]            s=[0]*row            for j in range(row):              #生成第row行的数组                s[j]=r[j]+r[j+1]            r=s            ans.append(r)        return ans


0 0
原创粉丝点击