Skip to content

Study about dynamic programming, based on the freeCodeCamp course.

Notifications You must be signed in to change notification settings

guilherme-alves-silve/dynamic-programming

Repository files navigation

Dynamic Programming [Java 17+]

"Dynamic programming is both a mathematical optimization method and a computer programming method. The method was developed by Richard Bellman in the 1950s and has found applications in numerous fields, from aerospace engineering to economics.

In both contexts it refers to simplifying a complicated problem by breaking it down into simpler sub-problems in a recursive manner. While some decision problems cannot be taken apart this way, decisions that span several points in time do often break apart recursively. Likewise, in computer science, if a problem can be solved optimally by breaking it into sub-problems and then recursively finding the optimal solutions to the sub-problems, then it is said to have optimal substructure.

If sub-problems can be nested recursively inside larger problems, so that dynamic programming methods are applicable, then there is a relation between the value of the larger problem and the values of the sub-problems.[1] In the optimization literature this relationship is called the Bellman equation."

Source: Wikipedia

The code is based on: FreeCodeCamp Course

  • fibonacci
    • naive
    • memoized
    • tabulation
  • gridTraveler
    • naive
    • memoized
    • tabulation
  • canSum
    • naive
    • memoized
    • tabulation
  • howSum
    • naive
    • memoized
    • tabulation
  • bestSum
    • naive
    • memoized
    • tabulation
  • canConstruct
    • naive
    • memoized
    • tabulation
  • countConstruct
    • naive
    • memoized
    • tabulation
  • allConstruct
    • naive
    • memoized
    • tabulation

About

Study about dynamic programming, based on the freeCodeCamp course.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages