Dynamic Programming
code: python
# O(n), O(n)
def f(n: int) -> int:
if n <= 1:
return n
dp = 0 * (n + 1)
dp1 = 1
for i in range(2, n + 1):
dpi = dpi-1 + dpi-2
return dpn
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