給定乙個非負整數 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.題目思路 楊輝三角這道題在我上資料結構課上講過,這種層...