iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
自我挑戰組

試煉之地 Leetcode 的挑戰系列 第 7

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

  • 分享至 

  • xImage
  •  

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

上一篇
Leetcode 挑戰 Day 06 [66. Plus One]
下一篇
Leetcode 挑戰 Day 08 [191. Number of 1 Bits]
系列文
試煉之地 Leetcode 的挑戰19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言