Skip to content
01Learn the basics
1.1Things to Know in C++/Java/Python or any language
1.2Build-up Logical Thinking
1.3Learn STL/Java-Collections or similar thing in your language
- C++ STLC++, Introduction to DSA
- Java CollectionsJava, Introduction to DSA
1.4Know Basic Maths
1.5Learn Basic Recursion
1.6Learn Basic Hashing
02Learn Important Sorting Techniques
2.1Sorting-I
2.2Sorting-II
03Solve Problems on Arrays [Easy -> Medium -> Hard]
3.1Easy
- Largest Element in an ArrayArrays, Data Structures
- Second Largest Element in an Array without sortingArrays, Data Structures
- Check if the array is sortedArrays, Data Structures
- Remove duplicates from Sorted arrayArrays, Data Structures
- Left Rotate an array by one placeArrays, Data Structures
- Left rotate an array by D placesArrays, Data Structures
- Move Zeros to endArrays, Data Structures, Two Pointer
- Linear SearchArrays, Data Structures
- Find the UnionArrays, Hashing, Sorting, Data Structures
- Find missing number in an arrayArrays, Data Structures, Binary Search, Hashing
- Maximum Consecutive OnesArrays, Data Structures
- Find the number that appears once, and other numbers twice.Arrays, Hashing, Data Structures
- Longest subarray with given sum K(positives)Arrays, Data Structures, Hashing
- Longest subarray with sum K (Positives + Negatives)Arrays, Data Structures, Hashing
3.2Medium
- 2Sum ProblemArrays, Sorting, Data Structures, Two Pointer
- Sort an array of 0's 1's and 2'sArrays, Two Pointer, Data Structures
- Majority Element (>n/2 times)Arrays, Hashing, Data Structures
- Kadane's Algorithm, maximum subarray sumArrays, Data Structures
- Print subarray with maximum subarray sum (extended version of above problem)Arrays, Hashing, Data Structures
- Stock Buy and SellArrays, Data Structures
- Rearrange the array in alternating positive and negative itemsArrays, Data Structures
- Next PermutationArrays, Data Structures, Two Pointer
- Leaders in an Array problemArrays, Data Structures
- Longest Consecutive Sequence in an ArrayArrays, Hashing, Data Structures
- Set Matrix ZerosArrays, Data Structures
- Rotate Matrix by 90 degreesArrays, Data Structures
- Print the matrix in spiral mannerArrays, Data Structures
- Count subarrays with given sumArrays, Hashing, Data Structures
3.3Hard
- Pascal's TriangleArrays, Data Structures, Maths
- Majority Element (n/3 times)Arrays, Hashing, Data Structures
- 3-Sum ProblemArrays, Sorting, Two Pointer, Data Structures, Hashing
- 4-Sum ProblemArrays, Sorting, Data Structures, Two Pointer, Hashing
- Largest Subarray with 0 SumArrays, Hashing, Data Structures
- Count number of subarrays with given xor KArrays, Hashing, Data Structures
- Merge Overlapping SubintervalsArrays, Data Structures, Sorting
- Merge two sorted arrays without extra spaceArrays, Sorting, Data Structures
- Find the repeating and missing numberArrays, Maths, Hashing, Data Structures
- Count InversionsSorting, Arrays, Data Structures
- Reverse PairsArrays, Sorting, Data Structures
- Maximum Product SubarrayArrays, Data Structures
04Binary Search [1D, 2D Arrays, Search Space]
4.1BS on 1D Arrays
- Binary Search to find X in sorted arrayArrays, Binary Search, Data Structures
- Implement Lower BoundBinary Search, Arrays, Data Structures
- Implement Upper BoundArrays, Binary Search, Data Structures
- Search Insert PositionArrays, Binary Search, Data Structures
- Floor/Ceil in Sorted ArrayArrays, Data Structures
- Find the first or last occurrence of a given number in a sorted arrayBinary Search, Arrays, Data Structures
- Count occurrences of a number in a sorted array with duplicatesHashing, Arrays, Data Structures
- Search in Rotated Sorted Array IArrays, Binary Search
- Search in Rotated Sorted Array IIArrays, Binary Search
- Find minimum in Rotated Sorted ArrayArrays, Data Structures
- Find out how many times has an array been rotatedArrays, Data Structures
- Single element in a Sorted ArrayArrays, Binary Search, Data Structures
- Find peak elementArrays, Binary Search
4.2BS on Answers
- Find square root of a number in log nBinary Search, Data Structures
- Find the Nth root of a number using binary searchBinary Search, Data Structures
- Koko Eating BananasArrays, Binary Search, Data Structures
- Minimum days to make M bouquetsArrays, Binary Search, Data Structures
- Find the smallest DivisorMaths, Data Structures
- Capacity to Ship Packages within D DaysArrays, Binary Search, Data Structures
- Kth Missing Positive NumberArrays, Binary Search, Data Structures
- Aggressive CowsArrays, Binary Search, Data Structures
- Book Allocation ProblemArrays, Data Structures, Binary Search
- Split array - Largest SumArrays, Binary Search, Data Structures, Dynamic Programming
- Painter's partitionArrays, Binary Search, Data Structures
- Minimize Max Distance to Gas StationArrays, Binary Search, Data Structures
- Median of 2 sorted arraysArrays, Binary Search, Data Structures
- Kth element of 2 sorted arraysArrays, Data Structures
4.3BS on 2D Arrays
05Strings [Basic and Medium]
5.1Basic and Easy String Problems
5.2Medium String Problems
- Sort Characters by frequencyArrays, Hashing, Data Structures
- Maximum Nesting Depth of ParanthesisString, Stack
- Roman Number to Integer and vice versaHashing, Maths, String
- Implement AtoiString, Data Structures
- Count Number of SubstringsString, Data Structures
- Longest Palindromic Substring[Do it without DP]String, Data Structures
- Sum of Beauty of all substringHashing, Data Structures, String
- Reverse Every Word in A StringTwo Pointer, String, Data Structures
06Learn LinkedList [Single LL, Double LL, Medium, Hard Problems]
6.1Learn 1D LinkedList
6.2Learn Doubly LinkedList
6.3Medium Problems of LL
- Middle of a LinkedList [TortoiseHare Method]Linked List, Data Structures
- Reverse a LinkedList [Iterative]Linked List, Data Structures
- Reverse a LL [Recursive]Linked List, Data Structures
- Detect a loop in LLLinked List, Data Structures
- Find the starting point in LLLinked List, Hashing, Two Pointer, Data Structures
- Length of Loop in LLLinked List, Data Structures
- Check if LL is palindrome or notLinked List, Data Structures
- Segrregate odd and even nodes in LLLinked List, Data Structures
- Remove Nth node from the back of the LLLinked List, Two Pointer, Data Structures
- Delete the middle node of LLLinked List, Data Structures
- Sort LLLinked List, Data Structures
- Sort a LL of 0's 1's and 2's by changing linksArrays, Two Pointer, Data Structures
- Find the intersection point of Y LLLinked List, Data Structures
- Add 1 to a number represented by LLLinked List, Data Structures
- Add 2 numbers in LLLinked List, Data Structures
6.4Medium Problems of DLL
6.5Hard Problems of LL
07Recursion [PatternWise]
7.1Get a Strong Hold
- Recursive Implementation of atoi()String, Recursion, Data Structures
- Pow(x, n)Maths, Recursion
- Count Good numbersMaths, Data Structures
- Sort a stack using recursionStack, Sorting, Data Structures
- Reverse a stack using recursionStack, Recursion, Data Structures
7.2Subsequences Pattern
- Generate all binary stringsString, Data Structures
- Generate ParanthesisString, Data Structures, Dynamic Programming
- Print all subsequences/Power SetRecursion, Data Structures
- Learn All Patterns of Subsequences (Theory)String, Data Structures
- Count all subsequences with sum KArrays, Hashing, Data Structures
- Check if there exists a subsequence with sum KArrays, Data Structures
- Combination SumRecursion, Data Structures, Arrays
- Combination Sum-IIRecursion, Data Structures, Arrays
- Subset Sum-IArrays, Recursion, Data Structures
- Subset Sum-IIArrays, Recursion, Data Structures
- Combination Sum - IIIRecursion, Data Structures, Arrays
- Letter Combinations of a Phone numberHashing, String, Data Structures
7.3Trying out all Combos / Hard
- Palindrome PartitioningString, Data Structures, Dynamic Programming
- Word SearchArrays, Data Structures, String
- N QueenArrays, Recursion
- Rat in a MazeRecursion, Data Structures
- Word Break
- M Coloring ProblemGraph, Data Structures
- Sudoko SolverArrays, Hashing, Data Structures
- Expression Add OperatorsMaths, String, Data Structures
08Bit Manipulation [Concepts & Problems]
8.1Learn Bit Manipulation
8.2Interview Problems
8.3Advanced Maths
09Stack and Queues [Learning, Pre-In-Post-fix, Monotonic Stack, Implementation]
9.1Learning
- Implement Stack using ArraysStack, Arrays, Data Structures
- Implement Queue using ArraysArrays, Queue, Data Structures
- Implement Stack using QueueStack, Queue, Data Structures
- Implement Queue using StackQueue, Data Structures, Stack
- Implement stack using LinkedlistStack
- Implement queue using LinkedlistQueue, Linked List, Data Structures
- Check for balanced paranthesisStack, Data Structures
- Implement Min StackStack, Data Structures
9.2Prefix, Infix, PostFix Conversion Problems
9.3Monotonic Stack/Queue Problems [VVV. Imp]
- Next Greater ElementArrays, Stack, Data Structures
- Next Greater Element 2Arrays, Stack, Data Structures
- Next Smaller ElementArrays, Stack, Data Structures
- Number of NGEs to the rightArrays, Hashing, Data Structures
- Trapping RainwaterArrays, Stack, Data Structures
- Sum of subarray minimumArrays, Dynamic Programming, Data Structures
- Asteroid CollisionArrays, Stack, Data Structures
- Sum of subarray rangesArrays, Stack, Data Structures
- Remove k DigitsString, Stack, Greedy
- Largest rectangle in a histogramArrays, Data Structures
- Maximal RectanglesArrays, Dynamic Programming, Stack, Data Structures
9.4Implementation Problems
10Sliding Window & Two Pointer Combined Problems
10.1Medium Problems
- Longest Substring Without Repeating CharactersString, Data Structures
- Max Consecutive Ones IIIArrays, Binary Search, Data Structures
- Fruit Into BasketsArrays, Hashing, Data Structures
- longest repeating character replacementString, Hashing
- Binary subarray with sumArrays, Data Structures, Hashing
- Count number of nice subarraysArrays, Hashing, Maths
- Number of substring containing all three charactersHashing, String, Data Structures
- Maximum point you can obtain from cardsArrays, Data Structures
10.2Hard Problems
11Heaps [Learning, Medium, Hard Problems]
11.1Learning
11.2Medium Problems
- Kth largest element in an array [use priority queue]Arrays, Data Structures, Heap
- Kth smallest element in an array [use priority queue]Arrays, Heap, Data Structures
- Sort K sorted arrayArrays, Sorting, Data Structures
- Merge M sorted ListsArrays, Heap, Data Structures, Linked List
- Replace each array element by its corresponding rankArrays, Hashing, Data Structures
- Task SchedulerArrays, Hashing, Greedy, Sorting, Heap
- Hands of StraightsArrays, Hashing, Greedy, Sorting, Data Structures
11.3Hard Problems
- Design twitterHashing, Linked List, Heap
- Connect `n` ropes with minimal costArrays, Heap, Data Structures
- Kth largest element in a stream of running integersBinary Search Tree, Heap, Data Structures
- Maximum Sum CombinationArrays, Sorting, Heap, Data Structures
- Find Median from Data StreamTwo Pointer, Sorting, Heap, Data Structures
- K most frequent elementsArrays, Hashing, Sorting, Heap, Data Structures
12Greedy Algorithms [Easy, Medium/Hard]
12.1Easy Problems
- Assign CookiesArrays, Two Pointer, Greedy, Data Structures, Sorting
- Fractional Knapsack ProblemGreedy, Data Structures
- Greedy algorithm to find minimum number of coinsGreedy, Arrays, Data Structures
- Lemonade ChangeArrays, Greedy, Data Structures
- Valid Paranthesis CheckerStack, String, Data Structures
12.2Medium/Hard
- N meetings in one roomArrays, Greedy, Data Structures
- Jump GameArrays, Dynamic Programming, Greedy, Data Structures
- Jump Game 2Arrays, Dynamic Programming, Greedy, Data Structures
- Minimum number of platforms required for a railwayArrays, Greedy, Data Structures
- Job sequencing ProblemGreedy, Data Structures, Arrays
- CandyArrays, Greedy
- Program for Shortest Job First (or SJF) CPU SchedulingHashing, Data Structures
- Program for Least Recently Used (LRU) Page Replacement AlgorithmHashing, Data Structures
- Insert IntervalArrays, Data Structures
- Merge IntervalsArrays, Sorting, Data Structures
- Non-overlapping IntervalsArrays, Greedy, Sorting, Data Structures
13Binary Trees [Traversals, Medium and Hard Problems]
13.1Traversals
- Introduction to TreesBinary Tree, Data Structures
- Binary Tree Representation in C++Binary Tree, Data Structures
- Binary Tree Representation in JavaBinary Tree, Data Structures
- Binary Tree Traversals in Binary TreeBinary Tree, Data Structures
- Preorder Traversal of Binary TreeBinary Tree, Data Structures
- Inorder Traversal of Binary TreeBinary Tree, Data Structures
- Post-order Traversal of Binary TreeBinary Tree, Data Structures
- Level order Traversal / Level order traversal in spiral formBinary Tree, Data Structures
- Iterative Preorder Traversal of Binary TreeBinary Tree, Data Structures
- Iterative Inorder Traversal of Binary TreeBinary Tree, Data Structures
- Post-order Traversal of Binary Tree using 2 stackBinary Tree, Data Structures
- Post-order Traversal of Binary Tree using 1 stackBinary Tree, Data Structures
- Preorder, Inorder, and Postorder Traversal in one TraversalBinary Tree, Data Structures
13.2Medium Problems
- Height of a Binary TreeBinary Tree, Data Structures
- Check if the Binary tree is height-balanced or notBinary Tree, Data Structures
- Diameter of Binary TreeBinary Tree, Data Structures
- Maximum path sumBinary Tree, Data Structures
- Check if two trees are identical or notBinary Tree, Data Structures
- Zig Zag Traversal of Binary TreeBinary Tree, Data Structures
- Boundary Traversal of Binary TreeBinary Tree, Data Structures
- Vertical Order Traversal of Binary TreeBinary Tree, Data Structures
- Top View of Binary TreeBinary Tree, Data Structures
- Bottom View of Binary TreeBinary Tree, Data Structures
- Right/Left View of Binary TreeBinary Tree, Data Structures
- Symmetric Binary TreeBinary Tree, Data Structures
13.3Hard Problems
- Root to Node Path in Binary TreeBinary Tree, Data Structures
- LCA in Binary TreeBinary Search Tree, Data Structures
- Maximum width of a Binary TreeBinary Tree, Data Structures
- Check for Children Sum PropertyBinary Tree, Data Structures
- Print all the Nodes at a distance of K in a Binary TreeBinary Tree, Data Structures
- Minimum time taken to BURN the Binary Tree from a NodeBinary Tree, Data Structures
- Count total Nodes in a COMPLETE Binary TreeBinary Tree, Data Structures
- Requirements needed to construct a Unique Binary Tree | TheoryBinary Tree, Data Structures
- Construct Binary Tree from inorder and preorderBinary Tree, Data Structures
- Construct the Binary Tree from Postorder and Inorder TraversalBinary Tree, Data Structures
- Serialize and deserialize Binary TreeBinary Tree, Data Structures
- Morris Preorder Traversal of a Binary TreeBinary Tree, Data Structures
- Morris Inorder Traversal of a Binary TreeBinary Tree, Data Structures
- Flatten Binary Tree to LinkedListBinary Tree, Linked List, Data Structures
14Binary Search Trees [Concept and Problems]
14.1Concepts
14.2Practice Problems
- Ceil in a Binary Search TreeBinary Search Tree, Data Structures
- Floor in a Binary Search TreeBinary Search Tree, Data Structures
- Insert a given Node in Binary Search TreeBinary Search Tree, Data Structures
- Delete a Node in Binary Search TreeBinary Search Tree, Data Structures
- Find K-th smallest/largest element in BSTBinary Search Tree, Data Structures
- Check if a tree is a BST or BTBinary Tree, Data Structures
- LCA in Binary Search TreeBinary Search Tree, Data Structures
- Construct a BST from a preorder traversalBinary Search Tree, Data Structures
- Inorder Successor/Predecessor in BSTBinary Search Tree, Data Structures
- Merge 2 BST'sBinary Search Tree, Hashing, Data Structures
- Two Sum In BST | Check if there exists a pair with Sum KTwo Pointer, Binary Search Tree, Data Structures
- Recover BST | Correct BST with two nodes swappedBinary Search Tree, Data Structures
- Largest BST in Binary TreeBinary Search Tree, Binary Tree, Data Structures
15Graphs [Concepts & Problems]
15.1Learning
15.2Problems on BFS/DFS
- Number of provinces (leetcode)Graph, Data Structures
- Connected Components Problem in MatrixGraph, Data Structures
- Rotten OrangesStack, Graph, Data Structures
- Flood fillGraph, Data Structures
- Cycle Detection in unirected Graph (bfs)Graph, Data Structures
- Cycle Detection in undirected Graph (dfs)Data Structures, Graph
- 0/1 Matrix (Bfs Problem)Arrays, Graph, Data Structures
- Surrounded Regions (dfs)Graph, Data Structures
- Number of Enclaves [flood fill implementation - multisource]Graph, Data Structures
- Word ladder - 1Hashing, Data Structures, String
- Word ladder - 2Hashing, String, Data Structures
- Number of Distinct Islands [dfs multisource]Graph, Data Structures
- Bipartite Graph (DFS)Arrays, Graph, Data Structures
- Cycle Detection in Directed Graph (DFS)Data Structures, Graph
15.3Topo Sort and Problems
15.4Shortest Path Algorithms and Problems
- Shortest Path in UG with unit weightsGraph, Data Structures
- Shortest Path in DAGGraph, Data Structures
- Djisktra's AlgorithmGraph, Data Structures
- Why priority Queue is used in Djisktra's AlgorithmGraph, Data Structures
- Shortest path in a binary mazeArrays, Graph, Data Structures
- Path with minimum effortArrays, Binary Search, Heap, Graph, Data Structures
- Cheapest flights within k stopsGraph, Data Structures
- Network Delay timeGraph, Data Structures
- Number of ways to arrive at destinationGraph, Data Structures
- Minimum steps to reach end from start by performing multiplication and mod operations with array elementsGraph, Data Structures
- Bellman Ford AlgorithmGraph, Data Structures
- Floyd Warshal AlgorithmGraph, Data Structures
- Find the city with the smallest number of neighbors in a threshold distanceGraph, Data Structures
15.5MinimumSpanningTree/Disjoint Set and Problems
- Minimum Spanning TreeGraph, Data Structures
- Prim's AlgorithmGraph, Data Structures
- Disjoint Set [Union by Rank]Graph, Data Structures
- Disjoint Set [Union by Size]Graph, Data Structures
- Kruskal's AlgorithmGraph, Data Structures
- Number of operations to make network connectedGraph, Data Structures
- Most stones removed with same rows or columnsArrays, Data Structures, Graph
- Accounts mergeGraph, Data Structures
- Number of island IIGraph, Data Structures
- Making a Large IslandGraph, Data Structures
- Swim in rising waterArrays, Binary Search, Graph, Heap
15.6Other Algorithms
16Dynamic Programming [Patterns and Problems]
16.1Introduction to DP
16.21D DP
- Climbing StarsArrays, Dynamic Programming, Data Structures, Recursion
- Frog Jump(DP-3)Dynamic Programming, Arrays, Recursion, Data Structures
- Frog Jump with k distances(DP-4)Arrays, Dynamic Programming, Recursion, Data Structures
- Maximum sum of non-adjacent elements (DP 5)Arrays, Recursion, Data Structures, Dynamic Programming
- House Robber (DP 6)Arrays, Dynamic Programming, Recursion, Data Structures
16.32D/3D DP and DP on Grids
- Ninja's Training (DP 7)Arrays, Dynamic Programming, Data Structures, Recursion
- Grid Unique Paths : DP on Grids (DP8)Arrays, Recursion, Dynamic Programming, Data Structures
- Grid Unique Paths 2 (DP 9)Arrays, Recursion, Dynamic Programming, Data Structures
- Minimum path sum in Grid (DP 10)Arrays, Recursion, Dynamic Programming, Data Structures
- Minimum path sum in Triangular Grid (DP 11)Arrays, Dynamic Programming, Data Structures, Recursion
- Minimum/Maximum Falling Path Sum (DP-12)Arrays, Recursion, Dynamic Programming, Data Structures
- 3-d DP : Ninja and his friends (DP-13)Arrays, Recursion, Data Structures, Dynamic Programming
16.4DP on Subsequences
- Subset sum equal to target (DP- 14)Arrays, Data Structures, Dynamic Programming, Recursion
- Partition Equal Subset Sum (DP- 15)Arrays, Dynamic Programming, Recursion, Data Structures
- Partition Set Into 2 Subsets With Min Absolute Sum Diff (DP- 16)Arrays, Dynamic Programming, Data Structures, Recursion
- Count Subsets with Sum K (DP - 17)Arrays, Recursion, Data Structures, Dynamic Programming
- Count Partitions with Given Difference (DP - 18)Arrays, Recursion, Dynamic Programming, Data Structures
- Assign CookiesArrays, Dynamic Programming, Recursion, Data Structures
- Minimum Coins (DP - 20)Recursion, Arrays, Dynamic Programming, Data Structures
- Target Sum (DP - 21)Dynamic Programming, Data Structures, Arrays, Recursion
- Coin Change 2 (DP - 22)Arrays, Dynamic Programming, Data Structures, Recursion
- Unbounded Knapsack (DP - 23)Arrays, Data Structures, Dynamic Programming, Recursion
- Rod Cutting Problem | (DP - 24)Arrays, Dynamic Programming, Data Structures, Recursion
16.5DP on Strings
- Longest Common Subsequence | (DP - 25)Dynamic Programming, Arrays, Recursion, Data Structures
- Print Longest Common Subsequence | (DP - 26)Arrays, Data Structures, Dynamic Programming, Recursion
- Longest Common Substring | (DP - 27)Arrays, Dynamic Programming, Recursion, Data Structures
- Longest Palindromic Subsequence | (DP-28)Arrays, Recursion, Dynamic Programming, Data Structures
- Minimum insertions to make string palindrome | DP-29Arrays, Recursion, Dynamic Programming, Data Structures
- Minimum Insertions/Deletions to Convert String | (DP- 30)Arrays, Recursion, Dynamic Programming, Data Structures
- Shortest Common Supersequence | (DP - 31)Data Structures, Dynamic Programming, Recursion
- Distinct Subsequences| (DP-32)Arrays, Data Structures, Dynamic Programming, Recursion
- Edit Distance | (DP-33)Arrays, Data Structures, Dynamic Programming, Recursion
- Wildcard Matching | (DP-34)Data Structures, Dynamic Programming, Arrays, Recursion
16.6DP on Stocks
- Best Time to Buy and Sell Stock |(DP-35)Arrays, Data Structures, Recursion, Dynamic Programming
- Buy and Sell Stock - II|(DP-36)Arrays, Dynamic Programming, Recursion, Data Structures
- Buy and Sell Stocks III|(DP-37)Dynamic Programming, Arrays, Recursion, Data Structures
- Buy and Stock Sell IV |(DP-38)Arrays, Data Structures, Dynamic Programming, Recursion
- Buy and Sell Stocks With Cooldown|(DP-39)Arrays, Data Structures, Recursion, Dynamic Programming
- Buy and Sell Stocks With Transaction Fee|(DP-40)Arrays, Data Structures, Recursion, Dynamic Programming
16.7DP on LIS
- Longest Increasing Subsequence |(DP-41)Arrays, Recursion, Dynamic Programming, Data Structures
- Printing Longest Increasing Subsequence|(DP-42)Data Structures, Arrays, Dynamic Programming, Recursion
- Longest Increasing Subsequence |(DP-43)Arrays, Recursion, Dynamic Programming, Data Structures
- Largest Divisible Subset|(DP-44)Arrays, Recursion, Data Structures, Dynamic Programming
- Longest String Chain|(DP-45)String, Dynamic Programming, Data Structures, Recursion
- Longest Bitonic Subsequence |(DP-46)Arrays, Recursion, Data Structures, Dynamic Programming
- Number of Longest Increasing Subsequences|(DP-47)Arrays, Dynamic Programming, Graph, Data Structures
16.8MCM DP | Partition DP
- Matrix Chain Multiplication|(DP-48)Arrays, Dynamic Programming, Data Structures, Recursion
- Matrix Chain Multiplication | Bottom-Up|(DP-49)Arrays, Dynamic Programming, Recursion, Data Structures
- Minimum Cost to Cut the Stick|(DP-50)Arrays, Dynamic Programming, Data Structures, Recursion
- Burst Balloons|(DP-51)Arrays, Data Structures, Dynamic Programming, Recursion
- Evaluate Boolean Expression to True|(DP-52)String, Data Structures, Dynamic Programming, Recursion
- Palindrome Partitioning - II|(DP-53)String, Data Structures, Dynamic Programming
- Partition Array for Maximum Sum|(DP-54)Arrays, Dynamic Programming, Recursion, Data Structures
16.9DP on Squares
17Tries
17.1Theory
17.2Problems
- Implement Trie - 2 (Prefix Tree)Trie, Data Structures
- Longest String with All PrefixesString, Data Structures
- Number of Distinct Substrings in a StringString, Trie, Data Structures
- Bit PreRequisites for TRIE ProblemsTrie, Data Structures
- Maximum XOR of two numbers in an arrayArrays, Hashing, Bit Manipulation, Data Structures, Trie
- Maximum XOR With an Element From ArrayArrays, Bit Manipulation, Trie, Data Structures
18Strings
18.1Hard Problems
- Minimum number of bracket reversals needed to make an expression balancedString, Stack, Two Pointer, Greedy
- Count and sayString, Data Structures
- Hashing In Strings | TheoryHashing, Data Structures
- Rabin KarpString, Data Structures
- Z-FunctionString, Data Structures
- KMP algo / LPS(pi) arrayString, Data Structures
- Shortest PalindromeString, Hashing, Data Structures
- Longest happy prefixString, Hashing
- Count palindromic subsequence in given stringString, Dynamic Programming, Data Structures