您的位置:首页 > 理论基础 > 计算机网络

https://leetcode.com/problems/pascals-triangle/

2015-04-13 11:24 288 查看
https://leetcode.com/problems/pascals-triangle/

初始化一个第n行有n个元素的list 

非array
[0]和array

的计算公式为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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: