leetcode刷題
1.第一題,楊輝三角,題目如下:
這道題的思路很簡單,處理好一行和0行的特殊情況後,就是動態生成,用一個demo來表示當前生成的列表,列表首尾爲1,此外demo[j]等於上一行的j-1個元素加上第j個元素之和,這樣暴力求解出來,害我還是太垃圾了,代碼如下:
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
result=[]
if numRows==0:
return []
if numRows==1:
return [[1]]
result.append([1])
for i in range(1,numRows):
demo=[]
for j in range(i+1):
if j==0 or j==i:
demo.append(1)
else:
demo.append(result[i-1][j-1]+result[i-1][j])
result.append(demo)
return result
2.楊輝三角形的進階,要求o(n)的空間複雜度,題目如下:
這道題看了一下其他人的思路,茅塞頓開。
代碼如下:
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
result=[1]
for i in range(1,rowIndex+1):
result.insert(0,0)
for j in range(i):
result[j]=result[j]+result[j+1]
return result