题目:
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
思路:
思路简单,稍后看看题目的进阶做法,然后做相应的增加。
程序1:(空间复杂度为O(k^2))
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
result = []
if rowIndex <= 0:
return [1]
for index1 in range(1, rowIndex + 2):
data = []
if index1 == 1:
data.append(1)
elif index1 == 2:
data.append(1)
data.append(1)
else:
for index2 in range(0, index1):
if index2 == 0:
data.append(1)
elif index2 > 0 and index2 < index1 - 1:
data.append(result[index1 - 2][index2 - 1] + result[index1 - 2][index2])
else:
data.append(1)
result.append(data)
row = result[rowIndex]
return row
程序2:
所需的空间为O(k),则构建一个长度为k的数组,计算过程模拟杨辉三角形出现的过程。
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
result = [1]*(rowIndex+1)
for index1 in range(rowIndex+1):
for index2 in range(index1 - 1, 0, -1):
result[index2] = result[index2 - 1] + result[index2]
return result
太难了,还是这么低。。。