# Dynamic Programming

‘Recent Articles’ on Dynamic Programming

**Topics:**

- Fibonacci numbers
- Binomial Coefficient
- Longest Common Subsequence
- Longest Repeated Subsequence
- Largest Sum Contiguous Subarray
- Ugly numbers
- Maximum size square sub-matrix with all 1s
- Longest Increasing Subsequence
- Min Cost Path
- Coin change problem
- Minimum number of edits ( operations ) require to convert string 1 to string 2
- Cutting a Rod
- Subset Sum Problem
- Minimum number of jumps to reach end
- Assembly line scheduling
- Maximum Sum Increasing Subsequence
- Maximum Length Chain of Pairs
- Longest Common Substring
- Count all possible paths from top left to bottom right of a mXn matrix
- nth Catalan Number
- Count number of ways to reach a given score in a game
- Tiling Problem
- Count even length binary sequences with same sum of first and second half bits
- Find number of solutions of a linear equation of n variables
- Bell Numbers (Number of ways to Partition a Set)
- Compute nCr % p
- Permutation Coefficient
- Count number of ways to fill a “n x 4” grid using “1 x 4” tiles
- A Space Optimized Solution of LCS
- Find maximum length Snake sequence
- Minimum cost to fill given weight in a bag
- Choice of area
- Maximum weight path ending at any element of last row in a matrix
- Recursively break a number in 3 parts to get maximum sum
- Path with maximum average value
- Maximum sum of pairs with specific difference
- Maximum subsequence sum such that no three are consecutive
- Longest subsequence such that difference between adjacents is one
- Maximum path sum for each position with jumps under divisibility condition
- Maximum sum Bi-tonic Sub-sequence
- LCS (Longest Common Subsequence) of three strings
- Maximum path sum in a triangle
- Friends Pairing Problem
- Size of array after repeated deletion of LIS
- Minimum steps to minimize n as per given condition
- Maximum path sum that starting with any cell of 0-th row and ending with any cell of (N-1)-th row
- Gold Mine Problem
- Find number of endless points
- Perfect Sum Problem (Print all subsets with given sum)
- Maximum sum of a path in a Right Number Triangle
- Subset with sum divisible by m

- 0-1 Knapsack Problem
- Length of the longest substring without repeating characters
- Count number of ways to reach destination in a Maze
- Super Ugly Number (Number whose prime factors are in given set)
- Count number of ways to partition a set into k subsets
- Longest Palindromic Subsequence
- Egg Dropping Puzzle
- Weighted job scheduling
- Longest Bitonic Subsequence
- Floyd Warshall Algorithm
- Partition Problem
- Variations of LIS
- Box-Stacking Problem
- Bellman–Ford Algorithm
- Optimal Binary Search Tree
- Largest Independent Set Problem
- Minimum insertions to form a palindrome
- Minimum number of deletions to make a string palindrome
- Maximum Product Cutting
- Clustering/Partitioning an array such that sum of square differences is minimum
- Maximum decimal value path in a binary matrix
- Count Derangements (Permutation such that no element appears in its original position)
- Dice Throw Problem
- Optimal Strategy for a game
- Word Break Problem
- Remove minimum elements from either side such that 2*min becomes more than max
- Count number of binary strings without consecutive 1’s
- Count Possible Decodings of a given Digit Sequence
- Count all possible walks from a source to a destination with exactly k edges
- Shortest path with exactly k edges in a directed and weighted graph
- Longest Even Length Substring such that Sum of First and Second Half is same
- Vertex Cover Problem
- Find the minimum cost to reach destination using a train
- Maximum profit by buying and selling a share at most twice
- Count possible ways to construct buildings
- Compute sum of digits in all numbers from 1 to n
- Shortest Common Supersequence
- Minimum number of coins that make a given value
- Minimum number of squares whose sum equals to given number n
- length of the longest consecutive path from a given starting character
- Total number of non-decreasing numbers with n digits
- Minimum Initial Points to Reach Destination
- Count of n digit numbers whose sum of digits equals to given sum
- Count total number of N digit numbers such that the difference between sum of even and odd digits is 1
- Count ways to assign unique cap to every person
- Longest Repeating Subsequence
- Find the longest path in a matrix with given constraints
- Number of paths with exactly k coins
- Collect maximum coins before hitting a dead end
- Count number of paths with at-most k turns
- Partition a set into two subsets such that the difference of subset sums is minimum
- Longest Zig-Zag Subsequence
- Largest sum Zigzag sequence in a matrix
- Count number of subsets having a particular XOR value
- Weighted Job Scheduling in O(n Log n) time
- Ways to arrange Balls such that adjacent balls are of different types
- Minimum time to finish tasks without skipping two consecutive
- Find if string is K-Palindrome or not | Set 1
- Find if string is K-Palindrome or not | Set 2
- Wildcard Pattern Matching
- Longest Common Increasing Subsequence (LCS + LIS)
- Printing Longest Common Subsequence | Set 2 (Printing All)
- High-effort vs. Low-effort Tasks Problem
- Find minimum adjustment cost of an array
- Find Jobs involved in Weighted Job Scheduling
- Minimum Cost To Make Two Strings Identical
- Find number of times a string occurs as a subsequence in given string
- Count digit groupings of a number with given constraints
- Non-crossing lines to connect points in a circle
- Count Distinct Subsequences
- Find minimum sum such that one of every three consecutive elements is taken
- Count distinct occurrences as a subsequence
- Number of permutation with K inversions
- Print all longest common sub-sequences in lexicographical order
- Find all distinct subset (or subsequence) sums of an array
- Count All Palindromic Subsequence in a given String
- Maximum sum alternating subsequence
- Sum of average of all subsets
- Minimum and Maximum values of an expression with * and +
- Minimum sum subsequence such that at least one of every four consecutive elements is picked
- Ways to write n as sum of two or more positive integers
- Unbounded Knapsack (Repetition of items allowed)
- Finding the maximum square sub-matrix with all equal elements
- Find Maximum dot product of two arrays with insertion of 0’s
- Maximum points collected by two persons allowed to meet once
- Minimum Sum Path In 3-D Array
- Count binary strings with k times appearing adjacent two set bits
- Highway Billboard Problem
- Probability of getting at least K heads in N tosses of Coins
- Count of strings that can be formed using a, b and c under given constraints
- Modify array to maximize sum of adjacent differences
- Temple Offerings
- Longest alternating subsequence
- Minimum steps to delete a string after repeated deletion of palindrome substrings
- Minimum number of deletions to make a sorted sequence
- Count number of ways to jump to reach end
- Shortest Uncommon Subsequence
- Minimum insertions to sort an array
- Dynamic Programming | Building Bridges

- Palindrome Partitioning
- Word Wrap Problem
- Maximum sum rectangle in a 2D matrix
- Matrix Chain Multiplication
- Longest Geometric Progression
- Find all combinations of k-bit numbers with n bits set where 1 <= n <= k in sorted order
- Find if a string is interleaved of two other strings
- Longest Arithmetic Progression
- Boolean Parenthesization Problem
- Mobile Numeric Keypad Problem
- Minimum Cost Polygon Triangulation
- How to print maximum number of A’s using given four keys
- Smallest length string with repeated replacement of two distinct adjacent
- Collect maximum points in a grid using two traversals
- Maximum weight transformation of a given string
- Find minimum possible size of array with given rules for removing elements
- Maximum profit by buying and selling a share at most k times
- Number of subsequences in a string divisible by n
- Maximize arr[j] – arr[i] + arr[l] – arr[k], such that i < j < k < l
- A Space Optimized DP solution for 0-1 Knapsack Problem
- Longest repeating and non-overlapping substring
- All ways to add parenthesis for evaluation
- Number of palindromic paths in a matrix
- Minimum cost to sort strings using reversal operations of different costs
- Minimum number of elements which are not part of Increasing or decreasing subsequence in array
- Printing brackets in Matrix Chain Multiplication Problem
- Check if all people can vote on two machines
- Probability of Knight to remain in the chessboard
- Count of AP (Arithmetic Progression) Subsequences in an array
- Number of subsequences of the form a^i b^j c^k
- Count ways to increase LCS length of two strings by one
- Count of arrays in which all adjacent elements are such that one of them divide the another
- Check whether row or column swaps produce maximum size binary sub-matrix with all 1s

- Top 20 Dynamic Programming Interview Questions
- ‘Practice Problems’ on Dynamic Programming
- ‘Quiz’ on Dynamic Programming
- Ask a Question on ‘Dynamic Programming’

If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above