118 楊輝三角

2021-08-20 15:16:17 字數 1280 閱讀 4637

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。

在楊輝三角中,每個數是它左上方和右上方的數的和。

示例:輸入: 5

輸出:[

[1],

[1,1],

[1,2,1],

[1,3,3,1],

[1,4,6,4,1]

]

按照楊輝三角計算的方法考慮,**如下:

class

solution:

defgenerate

(self, numrows):

""" :type numrows: int

:rtype: list[list[int]]

"""l1 = [1] #記錄當前層的list

l2 = #總的list

if numrows<=0: # 如果小於等於0,則返回空的list

return l2

for i in range(numrows):

l = l1 #l是記錄上一層的list

l1 = [1] # 每一層的最開始都是1

for j in range(len(l)-1):

a = l[j]+l[j+1]

return l2

看到用時最短的**,寫得非常簡潔,如下:

class

solution:

defgenerate

(self, numrows):

""" :type numrows: int

:rtype: list[list[int]]

"""res = [[1]] #1

for i in range(1,numrows): #2

return res[:numrows] #4

解釋第3行,這句話的結果是在res的最後面新增乙個list,運用map函式:map(function, iterable, …),

lambda是匿名函式,x取值來自res[-1]+[0],其中res[-1]+[0]是取出res的最後乙個元素,當然也是乙個list,然後在這個list後面加上乙個0;y取值來自[0]+res[-1],其中[0]+res[-1])是取出res的最後乙個元素,當然也是乙個list,然後在這個list前面加上乙個0

例如初始res為[[1]],則res[-1]+[0]為[1,0],res[-1]+[0]為[0,1],x+y , 經過map函式得到的list是[1,1],res為[[1],[1,1]]

leetcode 118 楊輝三角

前言 python刷leetcode題解答目錄索引 正文 給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 class solution def g...

LeetCode 118 楊輝三角

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 這個問題可以使用動態規劃的方法來解決 c class solution for int i 0 i...

LC118 楊輝三角

0.廢話 今天時間不是很充足,上了一天的課,明天還是一天的課 制定的計畫又被拉肚子和思想政治教育打亂了,估計今晚要熬夜了 所以就找了乙個簡單的寫一寫 1.題目要求 傳送門給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。2.題目思路 楊輝三角這道題在我上資料結構課上講過,這種層...