509. Fibonacci Number
Easy
Problem:
Calculate the Fibonacci sequence numbers.
Input: n = 4
Output: 3
Explanation: F(4) = F(3) + F(2) = 2 + 1 = 3.
https://leetcode.com/problems/fibonacci-number
Solution:
Memoization
class Solution:
dp = collections.defaultdict(int)
def fib(self, n: int) -> int:
if n <= 1:
return n
if self.dp[n]:
return self.dp[n]
self.dp[n] = self.fib(n - 1) + self.fib(n - 2)
return self.dp[n]
Tabulation
class Solution:
dp = collections.defaultdict(int)
def fib(self, n: int) -> int:
self.dp[1] = 1
for i in range(2, n + 1):
self.dp[i] = self.dp[i - 1] + self.dp[i - 2]
return self.dp[n]
Space efficiency: O(1)
class Solution:
def fib(self, n: int) -> int:
x, y = 0, 1
for i in range(0, n):
x, y = y, x+ y
return x
Last updated