Leetcode 挑战 Day 07 [118. Pascal's Triangle]

118. Pascal's Triangle


今天要挑战的是实作一个在数学上有许多应用的帕斯卡三角形!可以先参考Leetcode上的动画说明。
https://leetcode.com/problems/pascals-triangle/

题目


Given an integer numRows, return the first numRows of Pascal's triangle.

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

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


Example 2:
Input: numRows = 1
Output: [[1]]

这题希望我们实作一个帕斯卡三角形,题目会给我们一个整数,我们要做出相对应层数的帕斯卡三角形,关於帕斯卡三角形详细的规则和内容,可以参考维基百科。
https://zh.wikipedia.org/wiki/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92%E5%BD%A2

Nested loop


在python中我们可以用很直接明了的方法,先把一层的情况当作特例,而後建立二维阵列,接着我们可以根据题目给我们的整数,当作回圈执行的次数,每次对每一行再做一次回圈,最後和第一个一定是整数1,接着的每个元素根据前一行相对位置的元素相加,回圈全部跑完,就是答案了!

以下为python3的程序码

class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        if numRows == 1:
            return [[1]]
        ans = [[1], [1,1]]
        for i in range(2, numRows):
            deck = [1]
            for j in range(1, i):
                deck.append(ans[i-1][j-1] + ans[i-1][j])
            deck.append(1)
            ans.append(deck)
        return ans

<<:  Day 10 : 用於生产的机械学习 - Data Define 与建立基准

>>:  Kotlin Android 第5天,从 0 到 ML - 函式

DAY 12 Big Data 5Vs – Variety(速度) Lambda

在Variety主要说的速度问题是指单次任务运算处理的速度,速度的压力可能来自於使用者对回应速度的要...

成员 3 人:别让人落单,就成功一半

「三是一个质数,是一个特别的存在。」 「三角形是最坚固的形状,最强韧的组合。」 三个人的团队,是最适...

强型闯入DenoLand[25] - 使用 Deno 打造多线程应用(2)

强型闯入DenoLand[25] - 使用 Deno 打造多线程应用(2) 在了解何谓多线程以後,...

隐蔽频道(Covert Channel) &侧通道(Side Channel) &带外公开频道(Out-of-band Overt Channel)

隐蔽频道 .隐蔽通道是“意外或未经授权的系统内通道,它使两个合作实体能够以违反系统安全策略但不超过实...

[Day21] NLP会用到的模型(四)-Seq2Seq

一. Sequence to Sequence 在说明transformer之前,先介绍一下何谓Se...