# Common Patterns of Dynamic Programming

## Fibonacci Series

| **Problem Link** | **Articles** | **Solutions** |
| --- | --- | --- |
| [Climbing Stairs](https://leetcode.com/problems/climbing-stairs/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/FibonacciSeries/ClimbingStairs/Solution.java) |
| [Fibonacci Series](https://leetcode.com/problems/fibonacci-number/description/) |  |  |
| [Min Cost Climbing Stairs](https://leetcode.com/problems/min-cost-climbing-stairs/description/) |  |  |

## Kadane’s Algorithm

| **Problem Link** | **Articles** | **Solutions** |
| --- | --- | --- |
| [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/KadanesAlgorithm/MaximumSubarray/Solution.java) |
| [Maximum Sum Circular Subarray](https://leetcode.com/problems/maximum-sum-circular-subarray/description/) |  |  |
| [Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/KadanesAlgorithm/MaximumProductSubarray/Solution.java) |

## Edit Distance

| **Problem Link** | **Articles** | **Solutions** |
| --- | --- | --- |
| [Edit Distance](https://leetcode.com/problems/edit-distance/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/EditDistance/PlainEditDistance/Solution.java) |
| [Delete Operations for two strings](https://leetcode.com/problems/delete-operation-for-two-strings/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/EditDistance/DeleteOperationsForTwoStrings/Solution.java) |
| [Minimum ASCII delete sum for two strings](https://leetcode.com/problems/minimum-ascii-delete-sum-for-two-strings/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/EditDistance/MinimumAsciiDeleteSum/Solution.java) |

## Longest Common Subsequence

| **Problem Link** | **Articles** | **Solutions** |
| --- | --- | --- |
| [Longest Common Subsequence](https://leetcode.com/problems/longest-common-subsequence/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/LongestCommonSubsequence/LCS/Solution.java) |
| [Delete Operations for Two Strings](https://leetcode.com/problems/delete-operation-for-two-strings/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/EditDistance/DeleteOperationsForTwoStrings/Solution.java) |
| [Shortest Common Subsequence](https://leetcode.com/problems/shortest-common-supersequence/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/tree/main/DynamicProgramming/LongestCommonSubsequence/ShortestCommonSuperSequence) |

## Longest Increasing Subsequence

| **Problem Link** | **Articles** | **Solutions** |
| --- | --- | --- |
| [Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/LongestIncreasingSubsequence/LIS/Solution.java), [Binary Search](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/LongestIncreasingSubsequence/LIS/BinarySearch/Solution.java) |
| [Number of LIS](https://leetcode.com/problems/number-of-longest-increasing-subsequence/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/LongestIncreasingSubsequence/CountOfLIS/Solution.java) |
| [Russian Doll Envelopes](https://leetcode.com/problems/russian-doll-envelopes/description/) |  | [Github](https://github.com/subhakundu/DsAlgoPractice/blob/main/DynamicProgramming/LongestIncreasingSubsequence/RussianDolls/Solution.java) |
