leetcodedsa-templates12-dynamic-programming33-1-dimension-dpPython
# Brute Force
def bruteForce(n):
    if n <= 1:
        return n
    return bruteForce(n - 1) + bruteForce(n - 2)
 
# Memoization
def memoization(n, cache):
    if n <= 1:
        return n
    if n in cache:
        return cache[n]
 
    cache[n] = memoization(n - 1) + memoization(n - 2)
    return cache[n]
 
# Dynamic Programming
def dp(n):
    if n < 2:
        return n
 
    dp = [0, 1]
    i = 2
    while i <= n:
        tmp = dp[1]
        dp[1] = dp[0] + dp[1]
        dp[0] = tmp
        i += 1
    return dp[1]```