• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

118. Pascal’s Triangle(帕斯卡三角形)

leetcode admin 3个月前 (04-04) 196次浏览 0个评论 扫描二维码

Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.


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

Example:

Input: 5
Output:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

解法

class Solution:
    def generate(self, numRows):
        result = []
        for num in range(numRows):

            if num == 0:
                result.append([1])
            elif num == 1:
                result.append([1, 1])
            else:
                tmp = []
                tmp.append(1)
                for _pre in range(num - 1):
                    tmp.append(result[num - 1][_pre] + result[num - 1][_pre + 1])
                tmp.append(1)
                result.append(tmp)
        return result
                

说明:

第一行与第二行直接通过返回相应的数据
从第三行开始使用上一行相邻元素的相加来得到,但是列表收尾都是 1
只要这个逻辑理清楚,最 native 的版本应该可以写出来的。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明118. Pascal’s Triangle(帕斯卡三角形)
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!