/dynamic-programming

Learn Dynamic Programming by solving Algorithmic Problems & Coding Challenges

Primary LanguageJavaScript

recursion

Recursion means "defining a problem in terms of itself". This can be a very powerful tool in writing algorithms. Recursion comes directly from Mathematics, where there are many examples of expressions written in terms of themselves. For example, the Fibonacci sequence is defined as: F(i) = F(i-1) + F(i-2)

  • Recursive Sum: Code Implementation & Complexity Analysis
  • Optimizing Array & String Algorithms , Time Comparison of Slow & Fast Solutions
  • Multibranch Recursion: Fibonacci Code Implementation & Complexity Analysis
  • Combintations & Complexity Analysis
  • Permutations & Complexity Analysis

dynamic-progamming

Dynamic Programming (DP) is an algorithmic technique for solving an optimization problem by breaking it down into simpler subproblems and utilizing the fact that the optimal solution to the overall problem depends upon the optimal solution to its subproblems

Learn Dynamic Progamming by solving Algorithmic Problems & Coding Challenges This is based on this amazing free course by Alvin Zablan on freeCodeCamp course . I stronly suggest take advantage of it.

It covers..

  • fib memoization
  • gridTraveler memoization
  • canSum memoization
  • howSum memoization
  • bestSum memoization

TODO

  • canConstruct memoization
  • countConstruct memoization
  • allConstruct memoization
  • fib tabulation
  • gridTraveler tabulation
  • tabulation recipe
  • canSum tabulation
  • howSum tabulation
  • bestSum tabulation
  • canConstruct tabulation
  • countConstruct tabulation
  • allConstruct tabulation