• Bottom-Up approach:
    more intuitive. The key is to think about how to build solution for one case off of the previous case

  • Top-Down approach:
    how to divide the problem for case N into subproblems, be careful of overlap between cases.

time complexity: $O()$
space complexity: $O()$
reference: