Dynamic Programming or DP Last Updated : 25 Jul, 2025 Comments Improve Suggest changes Like Article Like Report Dynamic Programming is an algorithmic technique with the following properties.It is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for the same inputs, we can optimize it using Dynamic Programming. The idea is to simply store the results of subproblems so that we do not have to re-compute them when needed later. This simple optimization typically reduces time complexities from exponential to polynomial. Some popular problems solved using Dynamic Programming are Fibonacci Numbers, Diff Utility (Longest Common Subsequence), Bellman–Ford Shortest Path, Floyd Warshall, Edit Distance and Matrix Chain Multiplication.Basic of DPIntroduction to DP Tabulation vs MemoizationSteps to solve a DP ProblemBasic ProblemsFibonacci numbersTribonacci NumbersLucas NumbersClimbing StairsClimbing Stairs with 3 MovesWeighted Climbing Stairs Maximum Segments nth Catalan NumberCount Unique BSTsCount Valid ParenthesisWays to Triangulate a PolygonMin Sum in a TriangleMinimum Perfect SquaresWays to Partition a SetBinomial CoefficientPascal's TriangleNth Row of Pascal TriangleMin Sum in a TriangleEasy Problems House RobberMin Cost PathDecode WaysSubset Sum ProblemCoin change problem - Count Ways Coin Change – Minimum Coins to Make SumPainting Fence AlgorithmCutting a RodJump GameLongest Common SubstringCount all paths in a GridPaths in a Grid with ObstaclesPermutations with K Inversions Max A's using Special KeyboardMedium Problems Water Overflow Longest Common Subsequence Longest Increasing SubsequenceEdit DistanceLargest Divisible SubsetWeighted Job Schedulling0-1 Knapsack ProblemPrinting Items in 0/1 KnapsackUnbounded KnapsackWord Break ProblemTile Stacking ProblemBox-Stacking ProblemPartition ProblemLongest Palindromic SubsequenceLongest Common Increasing Subsequence (LCS + LIS)All distinct subset (or subsequence) sumsCount DerangementsMinimum insertions for palindromeWildcard Pattern MatchingRegular Expression MatchingArrange Balls with adjacent of different typesLongest Subsequence with 1 adjacent differenceMaximum size square sub-matrix with all 1sBellman–Ford AlgorithmFloyd Warshall Algorithm Maximum Tip CalculatorHard Problems Largest X Bordered SquareEgg Dropping ProblemPalindrome PartitioningPalindromic Substring CountWord Wrap ProblemOptimal Strategy for a GameThe painter’s partition problemProgram for Bridge and Torch problemMatrix Chain MultiplicationPrinting Matrix Chain MultiplicationMaximum sum rectangleStock Buy and Sell - At-Most k TimesStock Buy and Sell - At Most 2 TimesMin cost to sort strings using ReversalsCount of AP SubsequencesDP on TreesMax Height of Tree when any Node can be RootLongest repeating and non-overlapping substringPalindrome Substrings CountDP Problems Sorted by Topic / Dimensions / Standard ProblemsDP Standard Problems and Variations.DP Problems Dimension Wise (1D, 2D and 3D)DP Problems Topic WiseAdvanced Concepts in Dynamic Programming (DP)Bitmasking and Dynamic Programming | Set 1Bitmasking and Dynamic Programming | Set-2 (TSP)Digit DP | IntroductionSum over Subsets | Dynamic ProgrammingQuick Links:Learn Data Structure and Algorithms | DSA TutorialTop 20 Dynamic Programming Interview Questions‘Practice Problems’ on Dynamic Programming‘Quiz’ on Dynamic Programming Introduction to DP Visit Course Introduction to DP Dynamic Programming - Memoization Dynamic Programming - Tabulation Comment More infoAdvertise with us H harendrakumar123 Follow Improve Article Tags : Competitive Programming Explore Complete CP GuideCompetitive Programming - A Complete Guide5 min readBasicsDSA Tutorial - Learn Data Structures and Algorithms6 min readMaths for DSA15+ min readMathematical Algorithms5 min readBit manipulationBit Manipulation for Competitive Programming15+ min readBit Tricks for Competitive Programming7 min readBitwise Hacks for Competitive Programming14 min readDP for CPDynamic Programming (DP) Introduction15+ min readDynamic Programming or DP3 min readDP on Trees for Competitive Programming15+ min readDynamic Programming in Game Theory for Competitive Programming15+ min readAdvancedGraph Algorithms3 min readSegment Tree2 min readBinary Indexed Tree or Fenwick Tree15 min readArray Range Queries3 min read Like