題目
難度:★☆☆☆☆
類型:數(shù)組
給定一個(gè)非負(fù)整數(shù) numRows,生成楊輝三角的前 *numRows *行。
在楊輝三角中,每個(gè)數(shù)是它左上方和右上方的數(shù)的和。
示例
輸入: 5
輸出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
解答
這道題很簡(jiǎn)單,通過(guò)簡(jiǎn)單的循環(huán)嵌套即可實(shí)現(xiàn),這里需要注意的是初始化過(guò)程。
class Solution:
def generate(self, numRows):
if numRows == 0: # 輸入為0,輸出[]
return []
if numRows == 1: # 輸入為1,輸出第一層
return [[1]]
if numRows == 2: # 輸入為2,輸出前兩層
return [[1], [1, 1]]
res, prev_layer = [[1], [1, 1]], [1, 1] # 初始化結(jié)果變量和上一層結(jié)果
for r in range(2, numRows):
cur_layer = [] # 初始化
for i in range(0, len(prev_layer)-1):
cur_layer.append(prev_layer[i]+prev_layer[i+1]) # 當(dāng)前層結(jié)果
cur_layer = [1] + cur_layer + [1] # 左右兩邊添加1
res.append(cur_layer) # 添加當(dāng)前層結(jié)果
prev_layer = cur_layer # 更新前一層結(jié)果為當(dāng)前層結(jié)果
return res
如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~