我的代码是:
class Solution(object):
def getRow(self, rowIndex):
"""
:type rowIndex: int
:rtype: List[int]
"""
if rowIndex == 0:
return [1]
elif rowIndex == 1:
return [1, 1]
else:
ini_row = [1, 2, 1]
def GenNextRow(ini_row):
return map(lambda x, y: x+y, [0] + ini_row, ini_row + [0])
while len(ini_row) < rowIndex+1:
ini_row = GenNextRow(ini_row)
return ini_row
def getRow2(self, rowIndex):
result = [0] * (rowIndex + 1)
for i in xrange(rowIndex + 1):
old = result[0] = 1
for j in xrange(1, i+1):
old, result[j] = result[j], old + result[j]
return result
if __name__ == '__main__':
import time
start_time = time.time()
result = Solution().getRow2(4)
end_time = time.time()
print 'result: {0}'.format(result)
print 'time: {0}'.format(end_time-start_time)
然而,当我从终端运行它时,我收到一条错误消息:
追踪(最近的呼叫最后):
文件“array-Pascal's_Triangle2.py”,第46行,中 result = Solution()。getRow2(4)
AttributeError:'Solution'对象没有属性'getRow2'
然后我尝试注释第一个函数getRow()
,Solution.getRow2()
成功运行...
答案 0 :(得分:0)
你需要在类外部移动GenNextRow函数,因为Python不理解为什么类中有一个严重缩进的方法。这样做:
def GenNextRow(ini_row):
return map(lambda x, y: x+y, [0] + ini_row, ini_row + [0])
class Solution(object):
[...]