Intermediate

47 Lessons

8h

Certificate of Completion

Looking to Train your Team?

Empower your engineers to reach their potential faster.

Dynamic programming is something every developer should have in their toolkit. It allows you to optimize your algorithm with respect to time and space — a very important concept in real-world applications. In this course, you’ll start by learning the basics of recursion and work your ...

Hands-on coding environments

You don’t get better at swimming by watching others. Coding is no different. Practice as you learn with live code environments inside your browser.

Faster than videos

Videos are holding you back. The average video tutorial is spoken at 150 words per minute, while you can read at 250. That‘s why our courses are text-based.

No set-up required

Start learning immediately instead of fiddling with SDKs and IDEs. It‘s all on the cloud.

Progress you can show

Built-in assessments let you test your skills. Completion certificates let you show them off.

Hands-on coding environments

You don’t get better at swimming by watching others. Coding is no different. Practice as you learn with live code environments inside your browser.

Faster than videos

Videos are holding you back. The average video tutorial is spoken at 150 words per minute, while you can read at 250. That‘s why our courses are text-based.

No set-up required

Start learning immediately instead of fiddling with SDKs and IDEs. It‘s all on the cloud.

Progress you can show

Built-in assessments let you test your skills. Completion certificates let you show them off.

IntroductionWhat is Recursion?Thinking RecursivelyThe Fibonacci NumbersChallenge: Find All Permutations of a StringSolution Review: Find All Permutations of a StringChallenge: Place N Queens on an NxN ChessboardSolution Review: Place N Queens on an NxN ChessboardIs Plain Recursion Good Enough?What is Dynamic Programming?Approaches of Dynamic ProgrammingWhere to Use Dynamic ProgrammingQuiz

What is Memoization?The Fibonacci Numbers Algorithm with MemoizationChallenge: The Staircase ProblemSolution Review: The Staircase ProblemChallenge 2: The Knapsack ProblemSolution Review: The Knapsack ProblemQuiz

Limitations of Top-Down Dynamic ProgrammingWhat is Tabulation?The Fibonacci Numbers Algorithm with TabulationOptimizing the Fibonacci Numbers AlgorithmChallenge: The Catalan NumbersSolution Review: The Catalan NumbersChallenge 2: Longest Common SubstringSolution Review: Longest Common SubstringTop-Down vs Bottom-UpQuiz

Challenge: Number of Ways to Represent N DollarsSolution Review: Number of Ways to Represent N DollarsChallenge: The Rod Cutting ProblemSolution Review: The Rod Cutting ProblemChallenge: Weighted Scheduling ProblemSolution Review: Weighted Scheduling ProblemChallenge: The Matrix Chain MultiplicationSolution Review: The Matrix Chain MultiplicationChallenge: The Traveling Salesman ProblemSolution Review: The Traveling Salesman ProblemChallenge: Longest Common SubsequenceSolution Review: Longest Common SubsequenceChallenge: Longest Palindromic SubsequenceSolution Review: Longest Palindromic SubsequenceChallenge: The Edit Distance ProblemSolution Review: The Edit Distance ProblemConclusion

Join more than 1.7 million learners from companies like

COURSE BY:

Educative

Teams of every size choose

Educative for Business

to train, upskill & onboard their developers