在类内调用递归方法

2024-05-15 22:18:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在这里使用尾部递归,但我得到了一个错误:没有定义名称“Tribonaci”

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))

Tags: self名称returnif定义def错误else
1条回答
网友
1楼 · 发布于 2024-05-15 22:18:16

使用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))

相关问题 更多 >