A2Z DSA Sheet, reimagined & free
Every problem from the A2Z DSA sheet, from basics to dynamic programming, with direct links to practise on LeetCode and GeeksforGeeks. Tick problems off as you go and pick up where you left off.
- 428problems
- 21topics
- 123easy
- 178medium
- 127hard
Short on time? SDE Sheet: 180 must-do interview problems by pattern
Your progress
Solved
– / 428
- Easy– / 123
- Medium– / 178
- Hard– / 127
Saved in this browser
All 21 topics
428 problems
Start here: input and output, data types, conditionals, loops, functions and the basics of time complexity.
Basics pageGet comfortable with recursion by printing sequences, summing numbers, computing factorials, reversing arrays and checking palindromes.
Recursion Basics page- Understand Recursion by Print Something N TimesEasyGFG
- Print Name N Times Using RecursionEasyGFG
- Print 1 to N Using RecursionEasyGFG
- Print N to 1 Using RecursionEasyGFG
- Sum of First N NumbersEasyGFG
- Factorial of N NumbersEasyGFG
- Reverse an ArrayEasyGFG
- Check If a String Is Palindrome or NotMediumGFG
- Fibonacci NumberEasyLeetCode
Hashing theory and counting element frequencies, including the highest and lowest frequency element.
Basic Hashing pageFrom the largest element to Kadane's algorithm, 2Sum, 3Sum and 4Sum, matrix rotation, merging intervals, count inversions and reverse pairs.
Arrays page- Largest Element in an ArrayEasyGFG
- Second Largest Element in an Array Without SortingEasyGFG
- Check If the Array Is SortedEasyLeetCodeGFG
- Remove Duplicates from Sorted ArrayEasyLeetCodeGFG
- Left Rotate an Array by One PlaceEasyLeetCodeGFG
- Left Rotate an Array by D PlacesEasyLeetCodeGFG
- Move Zeros to EndEasyLeetCodeGFG
- Linear SearchEasyGFG
- Find the UnionMediumGFG
- Find Missing Number in an ArrayEasyLeetCodeGFG
- Maximum Consecutive OnesEasyLeetCodeGFG
- Find the Number That Appears Once, and Other Numbers TwiceMediumLeetCodeGFG
- Longest Subarray with Given Sum K (Positives)MediumLeetCodeGFG
- Longest Subarray with Sum K (Positives + Negatives)MediumLeetCodeGFG
- 2Sum ProblemMediumLeetCodeGFG
- Sort an Array of 0's 1's and 2'sMediumLeetCodeGFG
- Majority Element (>n/2 Times)EasyLeetCodeGFG
- Kadane's Algorithm, Maximum Subarray SumEasyLeetCodeGFG
- Print Subarray with Maximum Subarray Sum (Extended Version of Above Problem)MediumGFG
- Stock Buy and SellEasyLeetCode
- Rearrange the Array in Alternating Positive and Negative ItemsMediumLeetCode
- Next PermutationMediumLeetCodeGFG
- Leaders in an Array ProblemEasyGFG
- Longest Consecutive Sequence in an ArrayMediumLeetCodeGFG
- Set Matrix ZerosMediumLeetCodeGFG
- Rotate Matrix by 90 DegreesMediumLeetCodeGFG
- Print the Matrix in Spiral MannerMediumLeetCodeGFG
- Count Subarrays with Given SumEasyLeetCodeGFG
- Pascal's TriangleMediumLeetCodeGFG
- Majority Element (n/3 Times)MediumLeetCodeGFG
- 3-Sum ProblemMediumLeetCodeGFG
- 4-Sum ProblemHardLeetCode
- Largest Subarray with 0 SumMediumGFG
- Count Number of Subarrays with Given XOR KHardGFG
- Merge Overlapping SubintervalsMediumLeetCode
- Merge Two Sorted Arrays Without Extra SpaceMediumLeetCodeGFG
- Find the Repeating and Missing NumberHardLeetCodeGFG
- Count InversionsHardLeetCodeGFG
- Reverse PairsHardLeetCodeGFG
- Maximum Product SubarrayEasyLeetCodeGFG
Lower and upper bound, rotated sorted arrays, binary search on answers like Koko Eating Bananas and Aggressive Cows, and search in 2D matrices.
Binary Search page- Binary Search to Find X in Sorted ArrayEasyLeetCodeGFG
- Implement Lower BoundEasyLeetCode
- Implement Upper BoundEasyGFG
- Search Insert PositionEasyLeetCodeGFG
- Floor/Ceil in Sorted ArrayMediumGFG
- Find the First or Last Occurrence of a Given Number in a Sorted ArrayEasyLeetCodeGFG
- Count Occurrences of a Number in a Sorted Array with DuplicatesEasyLeetCodeGFG
- Search in Rotated Sorted Array IMediumLeetCodeGFG
- Search in Rotated Sorted Array IIMediumLeetCodeGFG
- Find Minimum in Rotated Sorted ArrayMediumLeetCodeGFG
- Find Out How Many Times Has an Array Been RotatedEasyGFG
- Single Element in a Sorted ArrayEasyLeetCodeGFG
- Find Peak ElementHardLeetCodeGFG
- Find Square Root of a Number in Log NMediumLeetCodeGFG
- Find the Nth Root of a Number Using Binary SearchMediumGFG
- Koko Eating BananasHardLeetCodeGFG
- Minimum Days to Make M BouquetsHardLeetCodeGFG
- Find the Smallest DivisorEasyLeetCodeGFG
- Capacity to Ship Packages Within D DaysHardLeetCodeGFG
- Kth Missing Positive NumberEasyLeetCodeGFG
- Aggressive CowsHardGFG
- Book Allocation ProblemHardGFG
- Split Array - Largest SumHardLeetCodeGFG
- Painter's PartitionHardGFG
- Minimize Max Distance to Gas StationMediumLeetCodeGFG
- Median of 2 Sorted ArraysHardLeetCode
- Kth Element of 2 Sorted ArraysMediumGFG
- Find the Row with Maximum Number of 1'sEasyLeetCodeGFG
- Search in a 2D MatrixMediumLeetCodeGFG
- Search in a Row and Column-Wise Sorted MatrixMediumLeetCodeGFG
- Find Peak Element (2D Matrix)HardLeetCode
- Matrix MedianHardLeetCodeGFG
Parentheses, palindromes, anagrams, isomorphic strings, Roman numerals, atoi and substring problems.
Strings page- Remove Outermost ParenthesisEasyLeetCodeGFG
- Reverse Words in a Given String / Palindrome CheckEasyLeetCodeGFG
- Largest Odd Number in a StringEasyLeetCodeGFG
- Longest Common PrefixEasyLeetCodeGFG
- Isomorphic StringEasyLeetCodeGFG
- Check Whether One String Is a Rotation of AnotherMediumLeetCodeGFG
- Check If Two Strings Are Anagram of Each OtherMediumLeetCodeGFG
- Sort Characters by FrequencyEasyLeetCodeGFG
- Maximum Nesting Depth of ParenthesisEasyLeetCodeGFG
- Roman Number to Integer and Vice VersaEasyLeetCodeGFG
- Implement atoiMediumLeetCodeGFG
- Count Number of SubstringsMediumGFG
- Longest Palindromic Substring [Do It Without DP]HardLeetCodeGFG
- Sum of Beauty of All SubstringMediumLeetCodeGFG
- Reverse Every Word in a StringEasyLeetCodeGFG
Singly and doubly linked lists: insertion, deletion, reversal, cycle detection with the tortoise and hare, sorting and cloning with random pointers.
Linked List page- Introduction to Linked List, Learn About Struct, and How Is Node RepresentedEasy
- Inserting a Node in Linked ListEasyGFG
- Deleting a Node in Linked ListMediumLeetCodeGFG
- Find the Length of the Linked List [Learn Traversal]EasyGFG
- Search an Element in the Linked ListEasyGFG
- Introduction to Doubly Linked List, Learn About Struct, and How Is Node RepresentedEasyGFG
- Insert a Node in Doubly Linked ListEasyGFG
- Delete a Node in Doubly Linked ListMediumGFG
- Reverse a Doubly Linked ListMediumGFG
- Middle of a Linked List [Tortoise-Hare Method]EasyLeetCodeGFG
- Reverse a Linked List [Iterative]EasyLeetCodeGFG
- Reverse a Linked List [Recursive]EasyLeetCode
- Detect a Loop in Linked ListMediumLeetCodeGFG
- Find the Starting Point in Linked ListMediumLeetCodeGFG
- Length of Loop in Linked ListEasyGFG
- Check If Linked List Is Palindrome or NotMediumLeetCodeGFG
- Segregate Odd and Even Nodes in Linked ListMediumLeetCodeGFG
- Remove Nth Node from the Back of the Linked ListMediumLeetCodeGFG
- Delete the Middle Node of Linked ListMediumLeetCodeGFG
- Sort Linked ListMediumLeetCode
- Sort a Linked List of 0's, 1's, and 2's by Changing LinksMediumGFG
- Find the Intersection Point of Y Linked ListMediumLeetCodeGFG
- Add 1 to a Number Represented by Linked ListMediumGFG
- Add 2 Numbers in Linked ListMediumLeetCodeGFG
- Delete All Occurrences of a Key in DLLMediumGFG
- Find Pairs with Given Sum in DLLMediumGFG
- Remove Duplicates from Sorted DLLMediumGFG
- Reverse LL in Group of Given Size KHardLeetCodeGFG
- Rotate a LLMediumLeetCodeGFG
- Flattening of LLHardGFG
- Clone a Linked List with Random and Next PointerHardLeetCodeGFG
Subsequences, subsets, combination sums, palindrome partitioning, N-Queens, Rat in a Maze, M-Coloring and Sudoku Solver.
Recursion & Backtracking page- Recursive Implementation of atoi()HardLeetCodeGFG
- Pow(x, n)MediumLeetCodeGFG
- Count Good NumbersEasyLeetCodeGFG
- Sort a Stack Using RecursionMediumGFG
- Reverse a Stack Using RecursionEasyGFG
- Generate All Binary StringsMediumGFG
- Generate ParenthesisMediumLeetCodeGFG
- Print All Subsequences/Power SetMediumLeetCodeGFG
- Count All Subsequences with Sum KHardLeetCode
- Check If There Exists a Subsequence with Sum KMediumGFG
- Combination SumMediumLeetCodeGFG
- Combination Sum-IIMediumLeetCodeGFG
- Subset Sum-IMediumGFG
- Subset Sum-IIMediumLeetCodeGFG
- Combination Sum - IIIHardLeetCode
- Letter Combinations of a Phone NumberMediumLeetCode
- Palindrome PartitioningMediumLeetCodeGFG
- Word SearchMediumLeetCodeGFG
- N QueenHardLeetCodeGFG
- Rat in a MazeHardGFG
- Word BreakMediumLeetCodeGFG
- M Coloring ProblemHardGFG
- Sudoku SolverHardLeetCodeGFG
- Expression Add OperatorsHardLeetCodeGFG
Checking and setting bits, counting set bits, powers of two, XOR tricks and generating the power set.
Bit Manipulation page- Introduction to Bit Manipulation [Theory]EasyGFG
- Check If the I-th Bit Is Set or NotEasyGFG
- Check If a Number Is Odd or NotEasyGFG
- Check If a Number Is Power of 2 or NotEasyLeetCodeGFG
- Count the Number of Set BitsEasyGFG
- Set/Unset the Rightmost Unset BitEasyGFG
- Swap Two NumbersEasyGFG
- Divide Two Integers Without Using Multiplication, Division and Mod OperatorMediumLeetCodeGFG
- Count Number of Bits to Be Flipped to Convert A to BMediumLeetCode
- Find the Number That Appears Odd Number of TimesEasyLeetCodeGFG
- Power SetMediumLeetCodeGFG
- Find XOR of Numbers from L to REasyGFG
- Find the Two Numbers Appearing Odd Number of TimesEasyGFG
Implement stacks and queues, convert between infix, prefix and postfix, solve monotonic stack problems and build LRU and LFU caches.
Stack & Queue page- Implement Stack Using ArraysEasyGFG
- Implement Queue Using ArraysEasyGFG
- Implement Stack Using QueueMediumLeetCodeGFG
- Implement Queue Using StackMediumLeetCodeGFG
- Implement Stack Using LinkedListEasyGFG
- Implement Queue Using LinkedListMediumGFG
- Check for Balanced ParenthesesMediumLeetCodeGFG
- Implement Min StackMediumLeetCodeGFG
- Infix to Postfix Conversion Using StackMediumGFG
- Prefix to Infix ConversionMediumGFG
- Prefix to Postfix ConversionMediumGFG
- Postfix to Prefix ConversionMediumGFG
- Postfix to InfixMediumGFG
- Convert Infix to Prefix NotationMediumGFG
- Next Greater ElementEasyLeetCodeGFG
- Next Greater Element 2MediumLeetCode
- Number of NGEs to the RightEasyGFG
- Trapping RainwaterHardLeetCodeGFG
- Sum of Subarray MinimumMediumLeetCodeGFG
- Asteroid CollisionMediumLeetCodeGFG
- Sum of Subarray RangesMediumLeetCodeGFG
- Remove K DigitsMediumLeetCodeGFG
- Largest Rectangle in a HistogramMediumLeetCodeGFG
- Maximal RectanglesHardLeetCodeGFG
- Sliding Window MaximumHardLeetCodeGFG
- Stock Span ProblemMediumLeetCodeGFG
- The Celebrity ProblemHardLeetCodeGFG
- LRU CacheHardLeetCodeGFG
- LFU CacheHardLeetCodeGFG
Longest substring without repeating characters, fruit into baskets, nice subarrays, minimum window substring and more.
Sliding Window & Two Pointers page- Longest Substring Without Repeating CharactersMediumLeetCodeGFG
- Max Consecutive Ones IIIMediumLeetCodeGFG
- Fruit into BasketsMediumLeetCode
- Longest Repeating Character ReplacementMediumLeetCodeGFG
- Binary Subarray with SumEasyLeetCodeGFG
- Count Number of Nice SubarraysMediumLeetCodeGFG
- Number of Substring Containing All Three CharactersMediumLeetCode
- Maximum Points You Can Obtain from CardsMediumLeetCodeGFG
- Longest Substring with at Most K Distinct CharactersMediumLeetCodeGFG
- Subarray with K Different IntegersHardLeetCodeGFG
- Minimum Window SubstringHardLeetCodeGFG
- Minimum Window SubsequenceHardLeetCodeGFG
Binary heaps and priority queues: Kth largest and smallest, merging sorted lists, task scheduler, median of a data stream and top K frequent elements.
Heaps & Priority Queues page- Introduction to Priority Queues Using Binary HeapsMediumGFG
- Min Heap and Max Heap ImplementationMediumGFG
- Check If an Array Represents a Min-Heap or NotMediumGFG
- Convert Min Heap to Max HeapMediumGFG
- Kth Largest Element in an Array [Use Priority Queue]EasyLeetCodeGFG
- Kth Smallest Element in an Array [Use Priority Queue]EasyGFG
- Sort K Sorted ArrayEasyGFG
- Merge M Sorted ListsHardLeetCodeGFG
- Replace Each Array Element by Its Corresponding RankEasyGFG
- Task SchedulerMediumLeetCodeGFG
- Hands of StraightsMediumLeetCodeGFG
- Design TwitterMediumLeetCodeGFG
- Connect N Ropes with Minimal CostMediumGFG
- Kth Largest Element in a Stream of Running IntegersEasyLeetCodeGFG
- Maximum Sum CombinationMediumGFG
- Find Median from Data StreamHardLeetCodeGFG
- K Most Frequent ElementsMediumLeetCodeGFG
Assign cookies, fractional knapsack, jump game, meeting rooms, job sequencing, candy and interval scheduling.
Greedy Algorithms page- Fractional Knapsack ProblemMediumGFG
- Greedy Algorithm to Find Minimum Number of CoinsMediumGFG
- Lemonade ChangeEasyLeetCodeGFG
- Valid Parenthesis CheckerMediumLeetCodeGFG
- N Meetings in One RoomMediumGFG
- Jump GameMediumLeetCodeGFG
- Jump Game 2MediumLeetCode
- Minimum Number of Platforms Required for a RailwayMediumGFG
- Job Sequencing ProblemMediumGFG
- CandyHardLeetCodeGFG
- Insert IntervalMediumLeetCodeGFG
- Merge IntervalsMediumLeetCodeGFG
- Non-Overlapping IntervalsMediumLeetCodeGFG
Recursive, iterative and Morris traversals, height and diameter, tree views, LCA, maximum width, construction from traversals and serialization.
Binary Trees page- Introduction to TreesEasyGFG
- Binary Tree Representation in C++EasyGFG
- Preorder Traversal of Binary TreeEasyLeetCodeGFG
- Inorder Traversal of Binary TreeEasyLeetCodeGFG
- Post-Order Traversal of Binary TreeEasyLeetCodeGFG
- Level Order Traversal / Level Order Traversal in Spiral FormEasyLeetCodeGFG
- Iterative Preorder Traversal of Binary TreeEasyLeetCodeGFG
- Iterative Inorder Traversal of Binary TreeEasyLeetCodeGFG
- Post-Order Traversal of Binary Tree Using 2 StackEasyLeetCodeGFG
- Post-Order Traversal of Binary Tree Using 1 StackMediumLeetCodeGFG
- Preorder, Inorder, and Postorder Traversal in One TraversalMedium
- Height of a Binary TreeMediumLeetCodeGFG
- Check If the Binary Tree Is Height-Balanced or NotMediumLeetCodeGFG
- Diameter of Binary TreeMediumLeetCodeGFG
- Maximum Path SumHardLeetCodeGFG
- Check If Two Trees Are Identical or NotMediumLeetCodeGFG
- Zig Zag Traversal of Binary TreeEasyLeetCodeGFG
- Boundary Traversal of Binary TreeMediumLeetCodeGFG
- Vertical Order Traversal of Binary TreeEasyLeetCodeGFG
- Top View of Binary TreeEasyGFG
- Bottom View of Binary TreeMediumGFG
- Right/Left View of Binary TreeMediumLeetCodeGFG
- Symmetric Binary TreeMediumLeetCodeGFG
- Root to Node Path in Binary TreeMediumGFG
- LCA in Binary TreeMediumLeetCodeGFG
- Maximum Width of a Binary TreeMediumLeetCodeGFG
- Construct Binary Tree from Inorder and PreorderHardLeetCodeGFG
- Construct the Binary Tree from Postorder and Inorder TraversalHardLeetCode
- Serialize and Deserialize Binary TreeHardLeetCodeGFG
- Morris Preorder Traversal of a Binary TreeMediumLeetCodeGFG
- Morris Inorder Traversal of a Binary TreeMediumLeetCodeGFG
- Flatten Binary Tree to LinkedListHardLeetCodeGFG
Search, insert and delete in a BST, floor and ceil, Kth smallest element, validation, LCA, inorder successor and recovering a BST.
Binary Search Trees page- Introduction to Binary Search TreeEasyLeetCode
- Search in a Binary Search TreeEasyLeetCodeGFG
- Find Min/Max in BSTMediumGFG
- Ceil in a Binary Search TreeEasyGFG
- Floor in a Binary Search TreeEasyGFG
- Insert a Given Node in Binary Search TreeEasyLeetCodeGFG
- Delete a Node in Binary Search TreeMediumLeetCodeGFG
- Find K-th Smallest/Largest Element in BSTMediumLeetCodeGFG
- Check If a Tree Is a BST or BTMediumLeetCodeGFG
- LCA in Binary Search TreeMediumLeetCodeGFG
- Construct a BST from a Preorder TraversalMediumLeetCodeGFG
- Inorder Successor/Predecessor in BSTMediumLeetCodeGFG
- Merge 2 BST'sHardGFG
- Two Sum in BST | Check If There Exists a Pair with Sum KMediumLeetCodeGFG
- Recover BST | Correct BST with Two Nodes SwappedHardLeetCodeGFG
- Largest BST in Binary TreeHardGFG
BFS and DFS, cycle detection, topological sort, shortest paths with Dijkstra, Bellman-Ford and Floyd-Warshall, minimum spanning trees, disjoint sets and SCCs.
Graphs page- Graph and TypesEasyGFG
- Graph RepresentationEasyGFG
- Connected ComponentsHardGFG
- DFSHardGFG
- BFSMediumGFG
- Number of ProvincesMediumLeetCodeGFG
- Rotten OrangesMediumLeetCodeGFG
- Flood FillHardLeetCodeGFG
- Cycle Detection in Undirected Graph (BFS)HardLeetCodeGFG
- 01 MatrixMediumLeetCodeGFG
- Surrounded RegionsHardLeetCodeGFG
- Number of EnclavesHardLeetCodeGFG
- Word Ladder - IHardLeetCodeGFG
- Word Ladder - IIHardLeetCodeGFG
- Number of Distinct IslandsHardLeetCodeGFG
- Bipartite GraphMediumLeetCodeGFG
- Cycle Detection in Directed GraphHardGFG
- Topo SortHardGFG
- Kahn's AlgoHardGFG
- Course Schedule IHardLeetCodeGFG
- Course Schedule IIHardLeetCode
- Find Eventual Safe StatesHardLeetCodeGFG
- Alien DictionaryHardGFG
- Shortest Path in UG with Unit WeightsHardGFG
- Shortest Path in DAGHardGFG
- Dijkstra's AlgorithmHardGFG
- Why Priority Queue Is Used in Dijkstra's AlgoMediumGFG
- Shortest Path in a Binary MazeMediumLeetCodeGFG
- Path with Minimum EffortMediumLeetCodeGFG
- Cheapest Flights Within K StopsHardLeetCodeGFG
- Network Delay TimeMediumLeetCodeGFG
- Number of Ways to Arrive at DestinationMediumLeetCodeGFG
- Minimum Steps to Reach End from Start by Performing Multiplication and Mod Operations with Array ElementsHardGFG
- Bellman Ford AlgorithmHardGFG
- Floyd Warshall AlgorithmHardGFG
- City with the Smallest Number of Neighbors at a Threshold DistanceHardLeetCodeGFG
- Minimum Spanning TreeHardGFG
- Disjoint Set UnionHardGFG
- Kruskal's AlgorithmHardGFG
- Number of Operations to Make Network ConnectedMediumLeetCodeGFG
- Most Stones Removed with Same Rows or ColumnsMediumLeetCodeGFG
- Accounts MergeHardLeetCodeGFG
- Making a Large IslandHardLeetCodeGFG
- Swim in Rising WaterHardLeetCode
- Bridges in GraphHardLeetCodeGFG
- Kosaraju's AlgorithmHardGFG
- Articulation PointHardGFG
The full DP series: 1D DP, DP on grids, subsets, strings and stocks, LIS and partition DP, from Climbing Stairs to Burst Balloons.
Dynamic Programming page- Climbing StairsMediumLeetCodeGFG
- Frog JumpMediumLeetCodeGFG
- Frog Jump with K Distances (DP-4)MediumGFG
- Maximum Sum of Non-Adjacent Elements (DP-5)MediumLeetCodeGFG
- House Robber (DP-6)MediumLeetCodeGFG
- Ninja's Training (DP-7)MediumGFG
- Grid Unique Paths: DP on Grids (DP-8)MediumLeetCodeGFG
- Grid Unique Paths 2 (DP-9)MediumLeetCodeGFG
- Minimum Path Sum in Grid (DP-10)MediumLeetCodeGFG
- Minimum Path Sum in Triangular Grid (DP-11)MediumLeetCodeGFG
- Minimum/Maximum Falling Path Sum (DP-12)MediumLeetCodeGFG
- 3D DP: Ninja and His Friends (DP-13)MediumGFG
- Subset Sum Equal to Target (DP-14)MediumGFG
- Partition Equal Subset Sum (DP-15)MediumLeetCodeGFG
- Partition Set into 2 Subsets with Min Absolute Sum Diff (DP-16)MediumLeetCodeGFG
- Count Subsets with Sum K (DP-17)MediumGFG
- Count Partitions with Given Difference (DP-18)MediumGFG
- 0/1 Knapsack (DP-19)HardGFG
- Minimum Coins (DP-20)HardLeetCodeGFG
- Target Sum (DP-21)MediumLeetCodeGFG
- Coin Change 2 (DP-22)HardLeetCodeGFG
- Unbounded Knapsack (DP-23)HardGFG
- Rod Cutting Problem (DP-24)HardGFG
- Longest Common Subsequence (DP-25)HardLeetCodeGFG
- Print Longest Common Subsequence (DP-26)HardGFG
- Longest Common Substring (DP-27)HardGFG
- Longest Palindromic Subsequence (DP-28)HardLeetCodeGFG
- Minimum Insertions to Make String Palindrome (DP-29)HardLeetCodeGFG
- Minimum Insertions/Deletions to Convert String (DP-30)HardLeetCodeGFG
- Shortest Common Supersequence (DP-31)HardLeetCodeGFG
- Distinct Subsequences (DP-32)HardLeetCodeGFG
- Edit Distance (DP-33)HardLeetCodeGFG
- Wildcard Matching (DP-34)MediumLeetCodeGFG
- Best Time to Buy and Sell Stock (DP-35)HardLeetCodeGFG
- Buy and Sell Stock II (DP-36)HardLeetCode
- Buy and Sell Stocks III (DP-37)HardLeetCode
- Buy and Sell Stock IV (DP-38)HardLeetCode
- Buy and Sell Stocks with Cooldown (DP-39)HardLeetCodeGFG
- Buy and Sell Stocks with Transaction Fee (DP-40)HardLeetCodeGFG
- Longest Increasing Subsequence (DP-41)HardLeetCode
- Printing Longest Increasing Subsequence (DP-42)HardGFG
- Longest Increasing Subsequence (DP-43)HardLeetCodeGFG
- Largest Divisible Subset (DP-44)HardLeetCodeGFG
- Longest String Chain (DP-45)HardLeetCodeGFG
- Longest Bitonic Subsequence (DP-46)HardLeetCode
- Number of Longest Increasing Subsequences (DP-47)HardLeetCodeGFG
- Matrix Chain Multiplication (DP-48)HardGFG
- Matrix Chain Multiplication | Bottom-Up (DP-49)Hard
- Minimum Cost to Cut the Stick (DP-50)HardLeetCode
- Burst Balloons (DP-51)HardLeetCode
- Evaluate Boolean Expression to True (DP-52)HardLeetCodeGFG
- Palindrome Partitioning II (DP-53)HardLeetCodeGFG
- Partition Array for Maximum Sum (DP-54)HardLeetCodeGFG
- Maximum Rectangle Area with All 1's (DP-55)HardLeetCodeGFG
- Count Square Submatrices with All Ones (DP-56)HardLeetCodeGFG
Implement a trie, count distinct substrings and solve maximum XOR problems with a bitwise trie.
Tries page- Implement Trie | Insert | Search | startsWithHardGFG
- Implement Trie - 2 (Prefix Tree)HardLeetCode
- Longest String with All PrefixesMediumGFG
- Number of Distinct Substrings in a StringHardLeetCodeGFG
- Bit Prerequisites for Trie ProblemsHard
- Maximum XOR of Two Numbers in an ArrayMediumLeetCodeGFG
- Maximum XOR with an Element from ArrayHardLeetCodeGFG
String hashing, Rabin-Karp, the Z-function, KMP and the LPS array, shortest palindrome and longest happy prefix.
Advanced Strings page- Minimum Number of Bracket Reversals Needed to Make an Expression BalancedMediumLeetCodeGFG
- Count and SayMediumLeetCodeGFG
- Hashing in Strings | TheoryMedium
- Rabin KarpHardLeetCodeGFG
- Z-FunctionEasyLeetCodeGFG
- KMP Algorithm / LPS (Pi) ArrayHardLeetCodeGFG
- Shortest PalindromeHardLeetCode
- Longest Happy PrefixHardLeetCodeGFG
- Count Palindromic Subsequences in Given StringHardGFG