https://leetcode.com/problems/pascals-triangle/
初始化一个第n行有n个元素的list
非array[n][0]和array[n][n]的计算公式为array[i+1][j]=array[i][j-1]+array[i][j]
————————————————————————————
初始化最开始用的
for i in range(numRows):
list[i]=[1]*(i+1)
提示TypeError: 'type' object does not support item assignment
原来是list没有指定是什么类型 所以是type类型
单独输出type(list)返回type
————————————————————————————
后来加了一句
list=[]
for i in range(numRows):
list[i]=[1]*(i+1)
提示IndexError: list assignment index out of range
因为list=[]就指定list是一个空列表 怎么可能有list[i]呢
————————————————————————————
最后 建立一个二维数组应该一维一维的创建
由于题目是杨辉三角
所以 一个n*n的数组只用到一大半 全部申请比较浪费 而且后期输出也不方便
申请一个第n行有n个元素的list
list=[] #list是一个列表
for i in range(numRows):
list.append([]) #先申请n行
for j in range(i+1): 每行的元素数等于行编号数
list[i].append(1)
最后代码如下
class Solution:
# @return a list of lists of integers
def generate(self, numRows):
array=[]
solution=[]
for i in range(numRows):
array.append([])
for j in range(i+1):
array[i].append(1)
if numRows>=3:
for i in range(2,numRows):
for j in range(1,i):
array[i][j]=array[i-1][j-1]+array[i-1][j]
if numRows==0:
return array
else:
for m in range(numRows):
return array