The problems solved under these patterns use a varied set of algorithmic techniques. I will make use of Breadth-First Search and Depth-First Search to solve problems related to Trees and Graphs. Similarly, we will also cover Dynamic Programming, Backtracking, Recursion, Greedy algorithms, and Divide & Conquer.
-
- Maximum Sum Subarray of Size K (easy)
- Smallest Subarray with a given sum (easy)
- Longest Substring with K Distinct Characters (medium)
- Fruits into Baskets (medium)
- No-repeat Substring (hard) *
- Longest Substring with Same Letters after Replacement (hard)
- Longest Subarray with Ones after Replacement (hard) *
- Problem Challenge 1 - Permutation in a String (hard) *
- Problem Challenge 2 - String Anagrams (hard)
- Problem Challenge 3 - Smallest Window containing Substring (hard) *
- Problem Challenge 4 - Words Concatenation (hard)
-
- Pair with Target Sum (easy)
- Remove Duplicates (easy)
- Squaring a Sorted Array (easy)
- Triplet Sum to Zero (medium)
- Triplet Sum Close to Target (medium)
- Triplets with Smaller Sum (medium)
- Subarrays with Product Less than a Target (medium) *
- Problem Challenge 1 - Quadruple Sum to Target (medium) *
- Problem Challenge 2 - Comparing Strings containing Backspaces (medium)
- Problem Challenge 3 - Minimum Window Sort (medium) *
-
- LinkedList Cycle (easy)
- Start of LinkedList Cycle (medium)
- Happy Number (medium)
- Middle of the LinkedList (easy)
- Problem Challenge 1
- Problem Challenge 2
- Problem Challenge 3