找规律,发现行的第一个和最后一个都是1
假设第五行第二个数4所在的数组位置是2,她是由上一个数组的第一个和第二个值相加,所以得出递推式:list[row][n] = list[row-1][n-1]+list[row-1][n],所以需要初始化第一个值为1,即list[1][1] = 1(假设位置都从1开始)
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
list = []
for j in range(1,numRows+1):
List = [0 for i in range(j)] ## 初始化三角形空数组
list.append(List)
list[0][0] = 1 ## 初始化第一位
for i in range(1,numRows):
list[i][0] = list[i][i] = 1 ## 将每行数组的第一位和最后一位都置为1
if(i>=2):
for j in range(1,len(list[i])-1): ## 使用递推式(注意数组位置从0开始)
list[i][j] = list[i-1][j-1]+list[i-1][j]
return list
提交通过: