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

YouTube

Dynamic Programming, Recursion, and Backtracking

Back To Back SWE via YouTube

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Master dynamic programming, recursion, and backtracking algorithms through this comprehensive 6-hour 32-minute course covering 23 essential problems and techniques. Learn the fundamental principles of backtracking with the legendary 3-key blueprint, then dive deep into dynamic programming concepts through classic problems like the Egg Dropping Problem, Longest Common Subsequence, and Edit Distance calculations. Explore advanced applications including Kadane's Algorithm for maximum subarray problems, the Catalan number sequence for counting binary search trees, and range sum querying with caching optimization. Practice backtracking techniques by implementing solutions for generating parentheses combinations, solving Sudoku puzzles, tackling the N Queens problem, and partitioning arrays into equal sum subsets. Work through string manipulation challenges including palindromic decompositions, IP address validation, phone number mnemonics, and permutation generation. Strengthen your understanding of recursive problem-solving with the staircase climbing problem, change-making algorithms, string decoding methods, and the classic 0/1 Knapsack optimization. Each topic includes detailed explanations of subproblem decomposition, state transitions, and algorithmic optimization strategies essential for technical interviews and competitive programming.

Syllabus

The Backtracking Blueprint: The Legendary 3 Keys To Backtracking Algorithms
Egg Dropping Problem: Dynamic Programming Fundamentals & Understanding Subproblem Decomposition
Longest Common Subsequence (2 Strings) - Dynamic Programming & Competing Subproblems
Range Sum Querying - Preventing Repeated Work With Caching ("Range Sum Query" on Leetcode)
Maximum Sum Rectangle In A 2D Matrix - Kadane's Algorithm Applications (Dynamic Programming)
Max Contiguous Subarray Sum - Cubic Time To Kadane's Algorithm ("Maximum Subarray" on LeetCode)
Total Unique Ways To Make Change - Dynamic Programming ("Coin Change 2" on LeetCode)
The Recursive Staircase - Top Down & Bottom Up Dynamic Programming ("Climbing Stairs" on LeetCode)
Generate All Strings With n Matched Parentheses - Backtracking ("Generate Parentheses" on LeetCode)
Count Total Unique Binary Search Trees - The nth Catalan Number (Dynamic Programming)
Compute The Next Permutation of A Numeric Sequence - Case Analysis ("Next Permutation" on Leetcode)
The Change Making Problem - Fewest Coins To Make Change Dynamic Programming
Total Ways To Decode A String - Recursive Dynamic Programming Approach ("Decode Ways" on LeetCode)
Edit Distance Between 2 Strings - The Levenshtein Distance ("Edit Distance" on LeetCode)
Partition To K Equal Sum Subsets From An Array of Integers - The Backtracking Approach
Implement A Sudoku Solver - Sudoku Solving Backtracking Algorithm ("Sudoku Solver" on LeetCode)
Generate All Palindromic Decompositions Of A String ("Palindrome Partitioning" on Leetcode)
Find The Longest Increasing Subsequence - Dynamic Programming Fundamentals
How To Permute A String - Generate All Permutations Of A String
The IP Address Decomposition Problem - Compute All Valid IP Addresses From Raw IP String
The 0/1 Knapsack Problem (Demystifying Dynamic Programming)
Compute All Mnemonics For A Phone Number (Recursion/Backtracking Problem)
The N Queens Problem using Backtracking/Recursion - Explained

Taught by

Back To Back SWE

Reviews

Start your review of Dynamic Programming, Recursion, and Backtracking

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.