Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Dynamic Programming Masterclass

Packt via Coursera

Overview

This course features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. Master dynamic programming (DP) with this masterclass, where you will learn to solve complex algorithmic problems using efficient DP techniques like recursion and memoization. Starting with the basics of DP, you’ll tackle problems such as the "Staircase Problem" and progress to more advanced challenges like the "Longest Increasing Subsequence" (LIS) and "Longest Common Subsequence" (LCS). You will also dive into practical applications like maximizing stock trading profits, finding unique paths in grids, and solving tree-related problems like the "House Robber in Binary Tree." With each problem, you’ll refine your problem-solving approach and enhance your algorithmic thinking. Ideal for programmers and algorithm enthusiasts, this course builds your ability to confidently solve DP problems for interviews, coding competitions, and real-world applications. Prior programming knowledge is recommended. By the end of the course, you will be able to solve complex dynamic programming problems efficiently and confidently apply DP techniques to a wide range of scenarios.

Syllabus

  • Introduction to Dynamic Programming
    • In this module, we introduce dynamic programming, discussing its importance and how it simplifies solving complex problems that involve overlapping subproblems. You will learn the foundational principles of recursion, memoization, and the core concepts that drive DP.
  • Solved Problems
    • In this module, we solve several real-world problems using dynamic programming. You’ll tackle problems such as the "Staircase Problem," "Rod Cutting," and "Share Market," each highlighting how DP improves problem-solving efficiency.
  • LIS Pattern (From DP Masterclass Course)
    • This module focuses on the Longest Increasing Subsequence (LIS) and related problems. You’ll explore how dynamic programming helps solve LIS, track compatible pairs in the Longest Chain of Pairs, and solve the Envelope Nesting problem through DP.
  • LCS Pattern
    • In this module, we explore advanced DP techniques to solve string-based problems, including finding the LCS, calculating the minimum edit distance between strings, and solving the longest palindromic subsequence problem. These concepts are crucial for understanding how DP can optimize string comparison tasks.
  • Buy and Sell Stock Pattern
    • This module focuses on dynamic programming applications for stock trading. You will explore how to maximize profits by buying and selling stocks with constraints such as transaction fees and cooldown periods, optimizing solutions for various trading scenarios.
  • Matrix 2D Pattern
    • In this module, we will explore dynamic programming solutions for 2D grid-based problems. From calculating unique paths in a grid to handling obstacles, you will learn how to use DP to solve pathfinding and optimization problems in matrix-like structures.
  • DP in Trees Pattern
    • In this module, we focus on tree-based dynamic programming problems. You’ll learn how to use DP to solve problems like the House Robber in Binary Tree, maximizing the profit without alerting the police, and how to find the maximum path sum in a binary tree.

Taught by

Packt - Course Instructors

Reviews

Start your review of Dynamic Programming Masterclass

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.