118. 楊輝三角
給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。
在楊輝三角中,每個數是它左上方和右上方的數的和。
示例:輸入: 5
輸出:[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]使用遞迴去解決因為有遞迴公式:
f (i
,j)=
f(i−
1,j−
1)+f
(i−1
,j
)f(i,j) = f(i-1,j-1)+f(i-1,j)
f(i,j)
=f(i
−1,j
−1)+
f(i−
1,j)
i f(
j==0
):f(
i,j)
=1
if (j ==0): f(i,j) = 1
if(j==
0):f
(i,j
)=1if(
i==j
):f(
i,j)
=1
if (i ==j): f(i,j) = 1
if(i==
j):f
(i,j
)=1同時在遞迴的過程中還有大量的重複計算,這裡建立了乙個字典記錄重複的數值,減少運算的時間。
class
solution
:def
generate
(self, numrows:
int)
-> list[list[
int]]:
dic =
defsolve
(i,j)
:if i <
0or j <0:
return
if(i,j)
in dic:
return dic[
(i,j)
]if i == j:
return
1if j ==0:
return
1 ans = solve(i-
1, j)
+ solve(i-
1, j-1)
dic[
(i,j)
]= ans
return ans
# print(solve(4,2))
out =
for i in
range
(numrows)
: res =
for j in
range
(i+1):
)return out
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...
leetcode 118 楊輝三角
每一行的頭和尾元素均初始化為1 中間元素由上層 i 1 j 1 i 1 j 構成 每行的長度可以預先確定。class solution def generate self,numrows int list list int ans for i in range numrows row 0 i 1 r...