在 class 中调用递归方法
Call a Recursive method inside a class
我在这里尝试使用尾递归,但出现错误:名称 'tribonacci' 未定义
class Solution:
def tribonacci(self, n: int) -> int:
if (n <= 0):
return 0
elif (n == 1):
return 1
else:
return tribonacci(n) + tribonacci(n - 1) + tribonacci(n - 2)
n=Solution()
print(n.tribonacci(4))
使用self关键字也解决了一个逻辑错误
import functools
class Solution:
@functools.lru_cache(None) #memoization to avoid TLE on large input
def tribonacci(self, n: int) -> int:
if (n <= 0): #for -ve input
return 0
elif n in [1, 2]:
return 1
else:
return self.tribonacci(n - 1) + self.tribonacci(n - 2) + self.tribonacci(n - 3)
sol = Solution()
print(sol.tribonacci(4))
我在这里尝试使用尾递归,但出现错误:名称 'tribonacci' 未定义
class Solution:
def tribonacci(self, n: int) -> int:
if (n <= 0):
return 0
elif (n == 1):
return 1
else:
return tribonacci(n) + tribonacci(n - 1) + tribonacci(n - 2)
n=Solution()
print(n.tribonacci(4))
使用self关键字也解决了一个逻辑错误
import functools
class Solution:
@functools.lru_cache(None) #memoization to avoid TLE on large input
def tribonacci(self, n: int) -> int:
if (n <= 0): #for -ve input
return 0
elif n in [1, 2]:
return 1
else:
return self.tribonacci(n - 1) + self.tribonacci(n - 2) + self.tribonacci(n - 3)
sol = Solution()
print(sol.tribonacci(4))