Dynamic Programming
code: python
# O(n), O(n)
def f(n: int) -> int:
if n <= 1:
return n
dp =
0
* (n + 1)
dp
1
= 1
for i in range(2, n + 1):
dp
i
= dp
i-1
+ dp
i-2
return dp
n
def test_f():
assert f(0) == 0
assert f(1) == 1
assert f(2) == 1
assert f(3) == 2
assert f(4) == 3
assert f(5) == 5
assert f(10) == 55