iT邦幫忙

0

leetcode with python:119. Pascal's Triangle II

題目:

Given an integer rowIndex, return the rowIndexth (0-indexed) row of the Pascal's triangle.

給定一數n,回傳帕斯卡三角形的第n+1列(因為n是index值)

帕斯卡三角形的定義詳見118.
這兩題基本上可以說是十分相像
差在118.要回傳前n列,而這題只需回傳特定一列
也就是我們要記住的不再是整個三角形
只要記住我們要推算的新列的上一列就好

class Solution:
    def getRow(self, rowIndex: int) -> List[int]:
        if rowIndex==0:
            return [1]
        ans=[1,1]
        for i in range(1,rowIndex):
            temp=[1]
            for j in range(len(ans)-1):
                temp.append(ans[j]+ans[j+1])
            temp.append(1)
            ans=temp
        return ans

大體上跟上題一樣
不過這題我們只要推算出新的一列就把上一列捨棄儲存新的這列
不用特別用一個陣列去存所有列
然後再用此列推算出下一列
如此循環直到做出第rowIndex+1列便可回傳
最後執行時間22ms(faster than 99.72%)

那我們下題見


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言