Pattern-first · self-paced · judge-backed
Learn DSA by solving the right problems in the right order.
Build pattern recognition across arrays, hashing, two pointers, and sliding windows. Each live problem gives you a clear statement, progressive hints, examples, and a real grading suite.
12parts
21patterns
163problems
148live now
~14hest. time
Launch curriculum
IFoundationsBeginner → Intermediate1 problems
1Foundations
1 problems1.1How to read Big-Olesson · soon
1.2Counting operations, amortized costlesson · soon
1.3Recursion: the call stack, visuallylesson · soon
1.4Recursion patterns: reduce, divide, explorelesson · soon
1.5Bubble, insertion, selection — visuallylesson · soon
1.6Merge sortlesson · soon
1.7Quick sort & partitioninglesson · soon
1.8Heap sortlesson · soon
#912Sort an ArraymediumLC #912open →IIArrays & HashingBeginner → Intermediate15 problems
1Arrays & Hashing
9 problems1.1Hashing: trade space for speedlesson · soon
#217Contains DuplicateeasyLC #217open →#242Valid AnagrameasyLC #242open →#1Two SumeasyLC #1open →DSAGroup Anagramssoon
#347Top K Frequent ElementsmediumLC #347open →#238Product of Array Except SelfmediumLC #238open →DSAEncode & Decode Stringssoon
#128Longest Consecutive SequencemediumLC #128open →#36Valid SudokumediumLC #36open →2Matrices
3 problems3Prefix Sums
3 problems3.1Prefix sums: precompute once, answer fastlesson · soon
#560Subarray Sum Equals KmediumLC #560open →#2062Count Vowel SubstringsmediumLC #2062open →DSARange Sum Query — Immutablesoon
IIITwo Pointers & Sliding WindowIntermediate → Advanced17 problems
1Two Pointers
9 problems1.1Opposite-ends two pointerslesson · soon
#167Two Sum IImediumLC #167open →#125Valid PalindromeeasyLC #125open →#153SummediumLC #15open →#11Container With Most WatermediumLC #11open →#611Valid Triangle NumbermediumLC #611open →#283Move ZeroeseasyLC #283open →#75Sort ColorsmediumLC #75open →#42Trapping Rain WaterhardLC #42open →#88Merge Sorted ArrayeasyLC #88open →2Sliding Window
8 problems2.1Fixed-size windowslesson · soon
2.2Variable-size windowslesson · soon
DSAMaximum Sum Subarray of Size Keasyopen →#2461Maximum Sum of Distinct Subarrays With Length KmediumLC #2461open →#1423Maximum Points From CardsmediumLC #1423open →#3Longest Substring Without Repeating CharactersmediumLC #3open →#424Longest Repeating Character ReplacementmediumLC #424open →#567Permutation in StringmediumLC #567open →#76Minimum Window SubstringhardLC #76open →#239Sliding Window MaximumhardLC #239open →IVBinary SearchBeginner → Advanced9 problems
1Binary Search
9 problems1.1Halving the search spacelesson · soon
#704Binary SearcheasyLC #704open →#74Search a 2D MatrixmediumLC #74open →#153Find Minimum in Rotated Sorted ArraymediumLC #153open →#33Search in Rotated Sorted ArraymediumLC #33open →#875Koko Eating BananasmediumLC #875open →#1011Minimum Shipping CapacitymediumLC #1011open →#410Split Array Largest SumhardLC #410open →#378Kth Smallest in a Sorted MatrixmediumLC #378open →DSAFirst Bad Versionsoon
VStackBeginner → Advanced8 problems
1Stack
8 problems1.1LIFO thinkinglesson · soon
#20Valid ParentheseseasyLC #20open →DSAMin Stacksoon
#150Evaluate Reverse Polish NotationmediumLC #150open →#394Decode StringmediumLC #394open →1.2Monotonic stackslesson · soon
#739Daily TemperaturesmediumLC #739open →#84Largest Rectangle in HistogramhardLC #84open →#32Longest Valid ParentheseshardLC #32open →#853Car FleetmediumLC #853open →VILinked ListsBeginner → Intermediate10 problems
1Linked Lists
10 problems1.1Pointers on paperlesson · soon
#206Reverse Linked ListeasyLC #206open →#21Merge Two Sorted ListseasyLC #21open →DSALinked List Cyclesoon
#234Palindrome Linked ListeasyLC #234open →#19Remove Nth Node From EndmediumLC #19open →#24Swap Nodes in PairsmediumLC #24open →#143Reorder ListmediumLC #143open →#2Add Two NumbersmediumLC #2open →DSALRU Cachesoon
DSACopy List With Random Pointersoon
VIITrees & TrieBeginner → Advanced17 problems
1Trees
14 problems1.1Depth-first search: go deep firstlesson · soon
1.2Tree traversal orderslesson · soon
1.3Passing values downlesson · soon
1.4Returning values uplesson · soon
#104Maximum Depth of Binary TreeeasyLC #104open →#100Same TreeeasyLC #100open →#226Invert Binary TreeeasyLC #226open →#112Path SumeasyLC #112open →#113Path Sum IImediumLC #113open →#543Diameter of Binary TreeeasyLC #543open →#563Binary Tree TilteasyLC #563open →#687Longest Univalue PathmediumLC #687open →#236Lowest Common AncestormediumLC #236open →#98Validate Binary Search TreemediumLC #98open →#124Binary Tree Maximum Path SumhardLC #124open →DSASerialize & Deserialize Binary Treesoon
#230Kth Smallest in a BSTmediumLC #230open →#105Construct Tree from Preorder and InordermediumLC #105open →2Trie
3 problems2.1Prefix treeslesson · soon
DSAImplement Triesoon
DSAPrefix Matchingsoon
DSADesign Add & Search Wordssoon
VIIIHeaps & IntervalsIntermediate → Advanced12 problems
1Heaps
7 problems1.1Priority queueslesson · soon
#215Kth Largest ElementmediumLC #215open →#973K Closest PointsmediumLC #973open →#658Find K Closest ElementsmediumLC #658open →#621Task SchedulermediumLC #621open →#23Merge K Sorted ListshardLC #23open →DSAFind Median From Data Streamsoon
#1046Last Stone WeighteasyLC #1046open →2Intervals
5 problemsIXGraphsBeginner → Advanced25 problems
1Graph DFS & Grids
6 problems1.1Graphs: nodes, edges, representationslesson · soon
1.2Building adjacency listslesson · soon
DSAClone Graphsoon
#261Graph Valid TreemediumLC #261open →1.3Grids as graphslesson · soon
#733Flood FilleasyLC #733open →#200Number of IslandsmediumLC #200open →#417Pacific Atlantic Water FlowmediumLC #417open →#130Surrounded RegionsmediumLC #130open →2Breadth-First Search
9 problems2.1Breadth-first: level by levellesson · soon
DSALevel Order Sumeasyopen →#103Zigzag Level OrdermediumLC #103open →#199Rightmost NodemediumLC #199open →#662Maximum WidthmediumLC #662open →#1197Minimum Knight MovesmediumLC #1197open →#994Rotting OrangesmediumLC #994open →#54201 MatrixmediumLC #542open →#815Bus RouteshardLC #815open →#127Word LadderhardLC #127open →3Weighted & Advanced Graphs
10 problems3.1Union-Find, visuallylesson · soon
#323Connected ComponentsmediumLC #323open →#684Redundant ConnectionmediumLC #684open →#207Course SchedulemediumLC #207open →#210Course Schedule IImediumLC #210open →3.2Dijkstra, Bellman-Ford, Floyd-Warshall — the maplesson · soon
#743Network Delay TimemediumLC #743open →#787Cheapest Flights Within K StopsmediumLC #787open →#1631Path With Minimum EffortmediumLC #1631open →#1334Find the City With the Smallest Number of NeighborsmediumLC #1334open →#1584Min Cost to Connect All PointsmediumLC #1584open →#269Alien DictionaryhardLC #269open →XBacktracking & GreedyIntermediate → Advanced16 problems
1Backtracking
10 problems1.1Choose, explore, un-chooselesson · soon
1.2Solution-space treeslesson · soon
#78SubsetsmediumLC #78open →#46PermutationsmediumLC #46open →#39Combination SummediumLC #39open →#17Letter CombinationsmediumLC #17open →#22Generate ParenthesesmediumLC #22open →#131Palindrome PartitioningmediumLC #131open →#79Word SearchmediumLC #79open →#51N-QueenshardLC #51open →#90Subsets IImediumLC #90open →DSAWord Search IIsoon
2Greedy
6 problemsXIDynamic ProgrammingIntermediate → Advanced23 problems
1Dynamic Programming
23 problems1.1Memoization: never solve twicelesson · soon
1.2From recursion to tablelesson · soon
#70Climbing StairseasyLC #70open →#746Min Cost Climbing StairseasyLC #746open →#198House RobbermediumLC #198open →#213House Robber IImediumLC #213open →#53Maximum SubarraymediumLC #53open →#338Counting BitseasyLC #338open →#62Unique PathsmediumLC #62open →#322Coin ChangemediumLC #322open →#518Coin Change IImediumLC #518open →#91Decode WaysmediumLC #91open →#139Word BreakmediumLC #139open →#300Longest Increasing SubsequencemediumLC #300open →#1143Longest Common SubsequencemediumLC #1143open →#5Longest Palindromic SubstringmediumLC #5open →#647Palindromic SubstringsmediumLC #647open →#416Partition Equal Subset SummediumLC #416open →#494Target SummediumLC #494open →#72Edit DistancehardLC #72open →#221Maximal SquaremediumLC #221open →#256Paint HousemediumLC #256open →#265Paint House IIhardLC #265open →#727Minimum Window SubsequencehardLC #727open →#1235Maximum Profit in Job SchedulinghardLC #1235open →