I am trying to use tail recursion here, and I am getting Error: name ‘tribonacci’ is not defined
JavaScript
x
11
11
1
class Solution:
2
def tribonacci(self, n: int) -> int:
3
if (n <= 0):
4
return 0
5
elif (n == 1):
6
return 1
7
else:
8
return tribonacci(n) + tribonacci(n - 1) + tribonacci(n - 2)
9
n=Solution()
10
print(n.tribonacci(4))
11
Advertisement
Answer
Use self keyword and also I have solved one logical error
JavaScript
1
13
13
1
import functools
2
class Solution:
3
@functools.lru_cache(None) #memoization to avoid TLE on large input
4
def tribonacci(self, n: int) -> int:
5
if (n <= 0): #for -ve input
6
return 0
7
elif n in [1, 2]:
8
return 1
9
else:
10
return self.tribonacci(n - 1) + self.tribonacci(n - 2) + self.tribonacci(n - 3)
11
sol = Solution()
12
print(sol.tribonacci(4))
13