Practice
370 problems across 27 topics, 9235 minutes of work. Hints come one at a time and the solution stays shut until you ask. Progress is saved on this device.
370 problems
- Single Stock TradeArraysEasy#single-pass#running-minimum15m
- Drop Sorted DuplicatesArraysEasy#two-pointers#in-place15m
- Product Of OthersArraysMedium#prefix-products#two-pass25m
- Longest Distinct RunArraysMedium#sliding-window#hash-map25m
- Window MaximumsArraysHard#sliding-window#monotonic-deque40m
- Majority ValueArraysEasy#counting#single-pass15m
- Rotate Right By KArraysMedium#in-place#reversal25m
- Spiral Grid WalkArraysMedium#matrix-traversal#boundary-shrinking25m
- Push Target Values BackArraysEasy#two-pointers#write-pointer15m
- Subarray Sums Divisible by KArraysMedium#prefix-sums#hash-map#modular-arithmetic25m
- Smallest Absent PositiveArraysHard#cyclic-sort#index-as-home35m
- Water Held Between BarsArraysHard#two-pointers#running-maximum35m
- Squares of a Sorted ListArraysEasy#two-pointers#merge-from-back15m
- Reverse Every K BlockArraysEasy#in-place-reversal#two-pointers15m
- Balance Point IndexArraysEasy#prefix-sums#running-sum15m
- Longest Window Within BudgetArraysMedium#sliding-window#two-pointers25m
- Taller Than Everything AfterArraysEasy#running-maximum#linear-scan15m
- Three Values Summing to ZeroArraysMedium#two-pointers#sort-first#skip-duplicates30m
- Next Larger ArrangementArraysMedium#in-place-reversal#suffix-scan25m
- Largest Product SubarrayArraysMedium#kadane#running-min-max25m
- Longest Shared PrefixStringsEasy#column-scan#string-comparison15m
- First Unique CharacterStringsEasy#hash-map#two-pass15m
- Run Length CompressionStringsMedium#two-pointers#run-length-encoding25m
- Multiply Digit StringsStringsMedium#digit-arithmetic#carry-propagation30m
- Minimum Window CoverStringsHard#sliding-window#hash-map45m
- Group Anagrams TogetherStringsMedium#hash-map#canonical-form20m
- Repeated DNA SequencesStringsMedium#rolling-hash#hash-set30m
- Palindrome After One DeletionStringsEasy#two-pointers#greedy20m
- Reverse the Word OrderStringsEasy#two-pointers#word-split10m
- Shortest Palindrome by PrependingStringsHard#kmp#palindrome40m
- Count Palindromic SubstringsStringsMedium#expand-around-center#palindrome25m
- Smallest Repeating UnitStringsMedium#kmp#string-period25m
- How Often Each Prefix AppearsStringsHard#z-algorithm#suffix-sums40m
- Pack a Word List Into One StringStringsEasy#length-prefix#string-parsing20m
- Anagram Positions in a TextStringsMedium#fixed-sliding-window#frequency-count25m
- Roman Numeral to IntegerStringsEasy#string-scan#lookup-table15m
- Integer Square RootSearchingEasy#binary-search#monotonic-predicate20m
- Peak In Bumpy ListSearchingMedium#binary-search#slope-following30m
- Median Of Two Sorted ListsSearchingHard#binary-search#partitioning50m
- First And Last OccurrenceSearchingMedium#binary-search#boundary-search25m
- Minimum Daily CapacitySearchingMedium#binary-search-on-answer#greedy-check30m
- Nearest Two WordsSearchingEasy#single-pass#linear-scan15m
- Count the RotationsSearchingMedium#binary-search#boundary-search20m
- Search a List of Unknown LengthSearchingMedium#binary-search#exponential-search25m
- Kth Number Missing From a ListSearchingEasy#binary-search#counting20m
- Value at a Point in TimeSearchingMedium#binary-search#upper-bound#versioned-store25m
- Next Letter After the TargetSearchingEasy#binary-search#upper-bound15m
- Target in a Rotated Sorted ListSearchingMedium#binary-search#rotated-array20m
- Kth Smallest Pair DistanceSearchingHard#binary-search-on-answer#two-pointers#sorting35m
- Out Of Place CountSortingEasy#sorting#pairwise-comparison15m
- Three Way Flag SortSortingMedium#dutch-national-flag#in-place30m
- Largest Number ArrangementSortingMedium#custom-comparator#sorting30m
- H Index From CitationsSortingMedium#sorting#counting20m
- Maximum Gap BucketsSortingHard#bucket-sort#pigeonhole40m
- Insertion Sort Shift CountSortingEasy#insertion-sort#stable-sort15m
- Sort a Linked ChainSortingMedium#divide-and-conquer#fast-slow-pointers30m
- Fewest Swaps to SortSortingMedium#cycle-decomposition#selection-sort25m
- Kth Smallest by PartitioningSortingMedium#quickselect#three-way-partition30m
- Pairs Below a BudgetSortingEasy#sorting#two-pointers20m
- Order After K Digit PassesSortingMedium#radix-sort#stable-sort#bucket-sort25m
- Count Out-of-Order PairsSortingHard#merge-sort#divide-and-conquer#inversion-count35m
- Sort by Another List's OrderSortingEasy#counting-sort#custom-order15m
- Pancake Flips to SortSortingMedium#selection-sort#prefix-reversal25m
- Pairs With the Smallest GapSortingEasy#sort-first#adjacent-scan15m
- Merge Sorted ChainsLinked ListsEasy#two-pointers#dummy-node20m
- Drop Nth From EndLinked ListsMedium#fast-slow-pointers#dummy-node25m
- Weave List HalvesLinked ListsMedium#fast-slow-pointers#list-reversal35m
- Remove Value NodesLinked ListsEasy#dummy-node#pointer-relinking15m
- Add Two Digit ChainsLinked ListsMedium#dummy-node#carry-propagation25m
- Partition Around ValueLinked ListsMedium#dummy-node#list-splitting30m
- Loop in a ChainLinked ListsEasy#fast-slow-pointers#cycle-detection15m
- Back and Forward HistoryLinked ListsEasy#doubly-linked-list#design20m
- Where the Loop BeginsLinked ListsMedium#fast-slow-pointers#cycle-detection30m
- Clone a Chain With Jump LinksLinked ListsMedium#pointer-relinking#in-place30m
- Chain Reads the Same BackwardsLinked ListsEasy#fast-slow-pointers#in-place-reversal20m
- Least Recently Used CacheLinked ListsMedium#doubly-linked-list#hash-map#sentinel-nodes35m
- Reverse Nodes in Groups of KLinked ListsHard#in-place-reversal#dummy-head35m
- Where Two Chains MergeLinked ListsEasy#two-pointers#list-traversal15m
- Constant Time Min StackStacks & QueuesEasy#stack#auxiliary-stack20m
- Days Until WarmerStacks & QueuesMedium#monotonic-stack30m
- Collapse Adjacent PairsStacks & QueuesEasy#stack#string-scan15m
- Decode Nested RepeatsStacks & QueuesMedium#stack#string-parsing30m
- Largest Bar RectangleStacks & QueuesHard#monotonic-stack45m
- Requests in the Last WindowStacks & QueuesEasy#queue#sliding-window15m
- Two-Stack Queue OperationsStacks & QueuesEasy#two-stacks#amortized15m
- Ring Buffer DequeStacks & QueuesMedium#circular-buffer#design25m
- Evaluate Postfix TokensStacks & QueuesEasy#stack#expression-evaluation15m
- Colliding Rocks in a RowStacks & QueuesMedium#stack#pop-while-weaker25m
- Evaluate Sums With BracketsStacks & QueuesHard#stack#expression-parsing#sign-tracking40m
- Next Greater Value LookupStacks & QueuesEasy#monotonic-stack#hash-map15m
- Prices After the Next DiscountStacks & QueuesEasy#monotonic-stack#next-smaller15m
- Simplify a Unix PathStacks & QueuesMedium#stack#string-parsing20m
- Shortest Run Summing to at Least KStacks & QueuesHard#monotonic-deque#prefix-sum40m
- Repeated Value CheckHash TablesEasy#hash-set#single-pass10m
- Subarrays Summing To KHash TablesMedium#prefix-sums#hash-map30m
- Longest Consecutive RunHash TablesMedium#hash-set#counting30m
- Shared Values Of Two ListsHash TablesEasy#hash-set#membership-test15m
- Consistent Renaming CheckHash TablesEasy#hash-map#bijection20m
- Four List Zero TuplesHash TablesMedium#hash-map#meet-in-the-middle30m
- Closest Repeat DistanceHash TablesEasy#hash-map#single-pass15m
- Where Linear Probing LandsHash TablesMedium#open-addressing#union-find30m
- Sort Letters by FrequencyHash TablesMedium#bucket-sort#counting20m
- Least Frequently Used CacheHash TablesHard#design#hash-map#frequency-buckets45m
- Longest Balanced Zeros and OnesHash TablesMedium#prefix-sum#first-seen-index20m
- Count Pairs With a Given GapHash TablesEasy#hash-map#complement-lookup15m
- Ransom Note From a MagazineHash TablesEasy#frequency-count#hash-map10m
- Group Words by Letter ShiftHash TablesMedium#canonical-key#hash-map#grouping20m
- Flatten a Nested ListRecursionEasy#recursion#tree-walk15m
- Disc Tower MovesRecursionMedium#recursion#divide-and-conquer20m
- Fast PowerRecursionMedium#recursion#divide-and-conquer20m
- Depth Weighted Nested SumRecursionEasy#recursion#pass-down15m
- Symbol In A Doubling RowRecursionMedium#recursion#halving25m
- Every Way To BracketRecursionMedium#divide-and-conquer#memoization30m
- Kth Smallest BST Key, IterativelyRecursionMedium#explicit-stack#inorder25m
- Halve or Subtract One StepsRecursionEasy#tail-recursion#bit-counting15m
- Look and Say TermRecursionEasy#recursion#run-length15m
- Upside-Down Numbers of a Given LengthRecursionMedium#recursion#build-from-inside-out25m
- Nth Tribonacci NumberRecursionEasy#recurrence#rolling-state10m
- Scrambled String CheckRecursionHard#recursion#memoization#divide-and-conquer40m
- Last Friend Standing in a CircleRecursionMedium#recursion#josephus#recurrence25m
- Palindrome Check Ignoring PunctuationRecursionEasy#tail-recursion#two-pointers15m
- Phone Keypad WordsBacktrackingMedium#backtracking#decision-tree20m
- Combinations That SumBacktrackingMedium#backtracking#pruning25m
- Split Into PalindromesBacktrackingMedium#backtracking#pruning25m
- Flip Letter Case VariantsBacktrackingEasy#backtracking#include-exclude15m
- Balanced Bracket StringsBacktrackingMedium#backtracking#pruning25m
- Count Queen PlacementsBacktrackingHard#backtracking#constraint-sets40m
- Distinct ArrangementsBacktrackingMedium#backtracking#pruning#sorting30m
- Dotted Addresses From DigitsBacktrackingMedium#backtracking#pruning30m
- Fill a Sudoku GridBacktrackingHard#backtracking#constraint-sets45m
- Matchsticks Into a SquareBacktrackingHard#backtracking#pruning#k-way-partition40m
- Binary Strings With No Adjacent OnesBacktrackingEasy#backtracking#pruning15m
- Trace a Word Through a Letter GridBacktrackingMedium#backtracking#grid-dfs#pruning25m
- Choose K of the First N NumbersBacktrackingEasy#backtracking#combinations#pruning15m
- Digit Orderings Under a LimitBacktrackingEasy#backtracking#permutations#pruning15m
- Fewest Removals to UnclashGreedyMedium#greedy#interval-scheduling#sorting20m
- Fewest Hops to the EndGreedyMedium#greedy#reach-frontier20m
- Split String Into BlocksGreedyMedium#greedy#last-occurrence20m
- Hand Out CookiesGreedyEasy#greedy#sorting#two-pointers15m
- Circular Fuel RouteGreedyMedium#greedy#running-sum25m
- Fair Candy SharesGreedyHard#greedy#two-pass40m
- Cheapest Rope JoiningGreedyMedium#greedy#min-heap25m
- Split Candidates Between Two CitiesGreedyEasy#greedy#sort-by-difference20m
- Most Events You Can AttendGreedyMedium#greedy#min-heap#earliest-deadline30m
- Fewest Clips to Cover a BroadcastGreedyMedium#greedy#reach-frontier#interval-cover25m
- Smallest Start for a Positive WalkGreedyEasy#running-sum#prefix-minimum10m
- Longest Chain of PairsGreedyMedium#greedy#sort-by-end#interval-scheduling20m
- Can the Last Index Be ReachedGreedyEasy#greedy#farthest-reach15m
- Deepest Level CountTrees & BSTEasy#dfs#recursion15m
- Zigzag Level WalkTrees & BSTMedium#bfs#level-order30m
- Right Edge ViewTrees & BSTMedium#bfs#level-order25m
- Mirror Symmetry CheckTrees & BSTEasy#recursion#paired-traversal20m
- Root To Leaf Target SumTrees & BSTEasy#dfs#recursion20m
- Widest Node To Node PathTrees & BSTMedium#dfs#post-order30m
- Rebuild From Two WalksTrees & BSTHard#divide-and-conquer#hash-map#recursion45m
- Closest Key in a BSTTrees & BSTEasy#bst#search-path15m
- Distance Between Two BST KeysTrees & BSTMedium#bst#lowest-common-ancestor25m
- Shallowest Leaf DepthTrees & BSTEasy#bfs#level-order15m
- Flatten a Tree Into a ChainTrees & BSTMedium#preorder#explicit-stack25m
- Top View of a TreeTrees & BSTMedium#bfs#column-index25m
- Largest BST Inside a TreeTrees & BSTMedium#post-order#bst30m
- Compact BST SerializationTrees & BSTMedium#preorder#monotonic-stack#bst30m
- Mirror a Binary TreeTrees & BSTEasy#recursion#tree-traversal10m
- Best Path Sum Between Any NodesTrees & BSTHard#post-order#tree-dp#global-best35m
- Height-Balanced Tree CheckTrees & BSTEasy#post-order#early-exit15m
- Wildcard Word SearchTriesMedium#trie#backtracking30m
- Replace Words With RootsTriesMedium#trie#prefix-match25m
- Maximum XOR PairTriesHard#bit-trie#greedy40m
- Prefix Tree OperationsTriesEasy#trie#design20m
- Typeahead Top ThreeTriesMedium#trie#prefix-match30m
- Dictionary Words In A GridTriesHard#trie#backtracking#grid-dfs45m
- Longest Word Built Letter by LetterTriesMedium#trie#dfs25m
- Sum of Values by PrefixTriesEasy#trie#design20m
- Word Endings in a Letter StreamTriesHard#trie#reversed-trie#stream40m
- Shortest Unique PrefixesTriesMedium#trie#prefix-count25m
- Spot Dictionary Words in a TextTriesEasy#trie#prefix-pruning15m
- Shortest Encoding of a Word ListTriesMedium#trie#suffix-sharing25m
- Kth Largest ValueHeapsMedium#min-heap#top-k25m
- Smash Heaviest StonesHeapsEasy#max-heap#simulation20m
- Closest Points To OriginHeapsMedium#max-heap#top-k30m
- Running Median StreamHeapsHard#two-heaps#streaming45m
- Task Scheduler CooldownHeapsMedium#heap#greedy35m
- Reorganize String GapsHeapsMedium#heap#greedy30m
- Min-Heap Array CheckHeapsEasy#heap#array-as-tree15m
- Sort a Nearly Sorted ListHeapsMedium#min-heap#k-sorted25m
- How Far Bricks and Ladders GoHeapsMedium#min-heap#greedy30m
- Process Tasks on One CPUHeapsMedium#min-heap#event-simulation30m
- K Weakest SquadsHeapsEasy#top-k#max-heap20m
- Closest K Values to a TargetHeapsEasy#top-k#max-heap15m
- Heapify a List in PlaceHeapsEasy#heapify#sift-down15m
- Spread Letters at Least K ApartHeapsMedium#max-heap#greedy#cooldown-queue30m
- Kth Smallest In MatrixTwo Heaps & K-Way MergeMedium#k-way-merge#heap30m
- Smallest Range K ListsTwo Heaps & K-Way MergeHard#k-way-merge#sliding-window45m
- Capital Project PicksTwo Heaps & K-Way MergeHard#two-heaps#greedy40m
- Merge K Sorted RunsTwo Heaps & K-Way MergeEasy#k-way-merge#min-heap20m
- K Smallest Pair SumsTwo Heaps & K-Way MergeMedium#k-way-merge#min-heap30m
- Rolling Window MedianTwo Heaps & K-Way MergeHard#two-heaps#lazy-deletion#sliding-window45m
- K Most Frequent ValuesTwo Heaps & K-Way MergeMedium#top-k#min-heap#hash-map25m
- Next Span to the RightTwo Heaps & K-Way MergeMedium#two-heaps#max-heap30m
- Kth Smallest Prime FractionTwo Heaps & K-Way MergeMedium#k-way-merge#min-heap30m
- Middle Score After Each EntryTwo Heaps & K-Way MergeEasy#two-heaps#streaming20m
- Bid-Ask Spread After Each QuoteTwo Heaps & K-Way MergeEasy#two-heaps#max-heap#min-heap15m
- K Most Frequent WordsTwo Heaps & K-Way MergeMedium#top-k#min-heap#hash-map20m
- Kth Largest in a Score StreamTwo Heaps & K-Way MergeEasy#min-heap#top-k#data-stream15m
- Cheapest Way to Level Each WindowTwo Heaps & K-Way MergeHard#two-heaps#sliding-window#lazy-deletion40m
- Count Island BlobsGraphsMedium#dfs#flood-fill#grid-traversal30m
- Course Order FeasibilityGraphsMedium#topological-sort#cycle-detection35m
- Word Ladder StepsGraphsHard#bfs#shortest-path45m
- Trusted Town JudgeGraphsEasy#degree-counting#directed-graph15m
- Deep Copy A GraphGraphsMedium#dfs#hash-map30m
- Spreading Rot MinutesGraphsMedium#bfs#multi-source#grid-traversal30m
- Two Colour Split CheckGraphsMedium#bfs#graph-colouring30m
- Signal Spread TimeGraphsMedium#dijkstra#shortest-path#min-heap30m
- Cheapest Trip Within a Stop LimitGraphsMedium#bellman-ford#shortest-path35m
- Mutual Reach GroupsGraphsHard#strongly-connected-components#dfs45m
- Rising Tide CrossingGraphsHard#union-find#minimum-spanning-tree#sorting45m
- Nodes Clear of CyclesGraphsMedium#dfs#graph-colouring#cycle-detection30m
- Mutual Follow PairsGraphsEasy#adjacency-set#directed-graph15m
- Water Every HouseGraphsHard#prim#virtual-node40m
- Fewest Roads to Link Every TownGraphsHard#strongly-connected-components#directed-graph45m
- Order the Build StepsGraphsEasy#topological-sort#indegree20m
- Deadlock in a Wait-For GraphGraphsEasy#cycle-detection#graph-colouring#topological-sort20m
- Cheapest Route Between Two StopsGraphsEasy#dijkstra#min-heap20m
- Shortest Paths With Rebate RoadsGraphsEasy#bellman-ford#negative-edges20m
- Alien Alphabet OrderGraphsHard#topological-sort#graph-from-constraints40m
- Open Every Locked RoomGraphsEasy#dfs#reachability15m
- Perimeter Of An IslandMatrix & GridEasy#grid-scan#neighbour-check20m
- Zero Out Rows And ColumnsMatrix & GridMedium#grid-marking#in-place25m
- Search A Sorted GridMatrix & GridMedium#staircase-walk#grid-search25m
- Repaint A Connected RegionMatrix & GridEasy#flood-fill#dfs15m
- Rotate A Square GridMatrix & GridMedium#in-place#transpose-reverse20m
- Longest Climbing PathMatrix & GridHard#grid-dfs#memoization40m
- Landlocked IslandsMatrix & GridMedium#flood-fill#grid-traversal30m
- Shortest Clear Grid PathMatrix & GridMedium#bfs#grid-traversal#shortest-path25m
- Largest All-Ones RectangleMatrix & GridHard#monotonic-stack#grid-scan45m
- Same Value Along Every DiagonalMatrix & GridEasy#matrix-indexing#diagonals15m
- Next Generation of CellsMatrix & GridMedium#eight-neighbours#in-place-encoding25m
- Cells Draining to Both CoastsMatrix & GridMedium#reverse-flood-fill#multi-source-search30m
- Largest Island AreaMatrix & GridEasy#flood-fill#dfs#grid-traversal15m
- Fill a Grid in Spiral OrderMatrix & GridEasy#matrix-traversal#direction-turning15m
- Count ProvincesUnion-FindMedium#union-find#connected-components25m
- Redundant ConnectionUnion-FindMedium#union-find#cycle-detection25m
- Accounts Merge By EmailUnion-FindHard#union-find#hash-map45m
- Reachable Pair CheckUnion-FindEasy#union-find#connectivity15m
- Consistent EqualitiesUnion-FindMedium#union-find#two-phase25m
- Stones Sharing A LineUnion-FindMedium#union-find#connected-components30m
- Earliest Moment All ConnectedUnion-FindMedium#union-find#sort-by-time25m
- Smallest Equivalent StringUnion-FindMedium#union-find#strings25m
- Spare Roads for Two TravellersUnion-FindHard#union-find#greedy45m
- Largest Group by Shared FactorUnion-FindHard#union-find#prime-factors45m
- Edges Form a Single TreeUnion-FindEasy#union-find#cycle-detection15m
- Islands After Each Land DropUnion-FindMedium#union-find#online-connectivity#grid30m
- Non Overlapping RemovalsIntervalsMedium#intervals#greedy25m
- Employee Free TimeIntervalsHard#intervals#merge40m
- Car Pooling CapacityIntervalsMedium#intervals#sweep-line25m
- Attend Every MeetingIntervalsEasy#intervals#sorting15m
- Condense Values Into RangesIntervalsEasy#intervals#single-pass15m
- Merge Overlapping SpansIntervalsMedium#intervals#sorting#merge20m
- Insert and Merge a SpanIntervalsMedium#intervals#merge25m
- Overlap of Two Span ListsIntervalsMedium#intervals#two-pointers25m
- Drop Spans Covered by OthersIntervalsMedium#intervals#sort-by-start20m
- Calendar Without Double BookingIntervalsMedium#sorted-intervals#bisect-insert#half-open-intervals25m
- Fewest Shots to Burst Every BalloonIntervalsMedium#intervals#greedy#sort-by-end25m
- Rooms Needed for Every MeetingIntervalsMedium#min-heap#sweep-line#sorting20m
- Cut a Span Out of Sorted SpansIntervalsEasy#interval-overlap#single-pass15m
- Reverse Bit OrderBit ManipulationEasy#bit-shifting#accumulator20m
- Single Value Among TriplesBit ManipulationMedium#bit-counting#modular-arithmetic30m
- The Missing ValueBit ManipulationEasy#xor-cancel#single-pass20m
- Differing Bit CountBit ManipulationEasy#xor#bit-counting15m
- Set Bits For Every NumberBit ManipulationEasy#bit-shifting#reuse-smaller-answer20m
- Two Lone ValuesBit ManipulationMedium#xor-cancel#bit-partition30m
- Power of Four CheckBit ManipulationEasy#bitmask#power-of-two15m
- Every Subset by BitmaskBit ManipulationEasy#bitmask#subsets20m
- Sort by Equal-Bit SwapsBit ManipulationMedium#popcount#adjacent-swaps25m
- Shortest Walk Through Every NodeBit ManipulationHard#bitmask#bfs45m
- Add Two Numbers Without PlusBit ManipulationMedium#bitwise-add#carry-propagation#twos-complement25m
- Bitwise AND Across a RangeBit ManipulationMedium#common-prefix#bit-shift20m
- Word Pairs With No Shared LettersBit ManipulationMedium#bitmask#set-as-integer20m
- Total Bit Differences Across PairsBit ManipulationMedium#bit-counting#per-bit-contribution20m
- Trailing Zeros Of A FactorialMath & Number TheoryEasy#factor-counting#math20m
- Primes Below A LimitMath & Number TheoryMedium#sieve#precomputation25m
- Power Under A ModulusMath & Number TheoryMedium#fast-exponentiation#modular-arithmetic25m
- Repeated Digit SumMath & Number TheoryEasy#modular-arithmetic#math15m
- Measure With Two JugsMath & Number TheoryMedium#gcd#math25m
- Choose K Modulo A PrimeMath & Number TheoryMedium#combinatorics#modular-inverse30m
- Least Common Multiple of a ListMath & Number TheoryEasy#gcd#lcm15m
- Fraction as a Repeating DecimalMath & Number TheoryMedium#long-division#hash-map30m
- Primes in a Wide RangeMath & Number TheoryHard#segmented-sieve#sieve40m
- One Row of Pascal's TriangleMath & Number TheoryEasy#binomial-coefficients#multiplicative-formula15m
- Greatest Common Divisor of StringsMath & Number TheoryEasy#gcd#string-period15m
- Song Pairs Filling Whole MinutesMath & Number TheoryMedium#modular-arithmetic#remainder-count20m
- Power With a Huge ExponentMath & Number TheoryMedium#fast-exponentiation#modular-arithmetic25m
- Cheapest Stair ClimbDynamic ProgrammingEasy#bottom-up-dp#rolling-variables20m
- Grid Paths With BlocksDynamic ProgrammingMedium#grid-dp#bottom-up-dp30m
- Sentence SegmentationDynamic ProgrammingMedium#bottom-up-dp#hash-set30m
- Trading With CooldownDynamic ProgrammingHard#state-machine-dp#rolling-variables45m
- Paint Houses CheaplyDynamic ProgrammingEasy#bottom-up-dp#rolling-variables20m
- Decode Digit MessageDynamic ProgrammingMedium#bottom-up-dp#rolling-variables30m
- Unique BST ShapesDynamic ProgrammingMedium#bottom-up-dp#counting30m
- Pop Balloons For CoinsDynamic ProgrammingHard#interval-dp#bottom-up-dp50m
- Non-Adjacent HarvestDynamic ProgrammingEasy#bottom-up-dp#rolling-variables20m
- Fewest Coins for an AmountDynamic ProgrammingMedium#bottom-up-dp#unbounded-knapsack30m
- Longest Rising SubsequenceDynamic ProgrammingMedium#bottom-up-dp#subsequence-dp30m
- Fewest Edits Between WordsDynamic ProgrammingMedium#string-dp#bottom-up-dp35m
- Nesting EnvelopesDynamic ProgrammingHard#binary-search#patience-sorting#sorting45m
- Cheapest Stick CutsDynamic ProgrammingHard#interval-dp#bottom-up-dp50m
- Ways to Pay an AmountDynamic ProgrammingMedium#unbounded-knapsack#bottom-up-dp25m
- Build a Shortest SupersequenceDynamic ProgrammingHard#string-dp#subsequence-dp45m
- Longest Palindromic SubsequenceDynamic ProgrammingMedium#lcs#2d-dp30m
- Signs That Hit a TargetDynamic ProgrammingMedium#0-1-knapsack#subset-count30m
- Fewest Watchers on a TreeDynamic ProgrammingHard#tree-dp#state-machine45m
- Pie Slices With Two FriendsDynamic ProgrammingHard#circular-dp#exact-count-dp45m
- Best Value Van LoadDynamic ProgrammingMedium#unbounded-knapsack#bottom-up-dp25m
- Closest Two-Team SplitDynamic ProgrammingMedium#0-1-knapsack#subset-sum30m
- Gift Cards for an Exact TotalDynamic ProgrammingEasy#0-1-knapsack#subset-sum20m
- Exact Change With Unlimited CoinsDynamic ProgrammingEasy#unbounded-knapsack#bottom-up-dp15m
- Cheapest Path Across a GridDynamic ProgrammingEasy#grid-dp#2d-dp20m
- Fewest Deletions to Match Two WordsDynamic ProgrammingEasy#lcs#string-dp20m
- Interleave Two StringsDynamic ProgrammingMedium#two-string-dp#rolling-row30m
- Token Bucket Rate LimiterSystem DesignEasy#token-bucket#integer-math15m
- Read Quorum for a Write QuorumSystem DesignEasy#quorum#pigeonhole10m
- Consistent Hashing RingSystem DesignMedium#consistent-hashing#virtual-nodes#bisect25m
- Bloom Filter SizingSystem DesignMedium#bloom-filter#double-hashing25m
- Least-Connections Load BalancerSystem DesignMedium#least-connections#min-heap#event-simulation25m
- Latency Percentiles by Nearest RankSystem DesignEasy#percentiles#sorting10m
- Visibility Timeouts in a Message QueueSystem DesignMedium#message-queue#event-simulation25m
- Critical Path Through a TraceSystem DesignMedium#distributed-tracing#interval-union#tree-walk25m
- URL Shortener Capacity EstimateSystem Design CasesEasy#capacity-estimation#back-of-the-envelope15m
- Feed Fan-Out CostSystem Design CasesMedium#fan-out#cost-model25m
- Rate-Limit Tiers for an API GatewaySystem Design CasesMedium#rate-limiting#sliding-window-log25m
- Cache Hit Ratio for a News FeedSystem Design CasesEasy#lru-cache#hit-ratio15m
- Softmax With TemperatureAI & MLEasy#softmax#numerical-stability15m
- KV Cache Memory BudgetAI & MLEasy#capacity-math#memory-estimate10m
- Nearest Documents by CosineAI & MLMedium#vector-math#partial-sort20m
- Trim a Chat to Fit the ContextAI & MLMedium#token-budget#newest-first20m
- Learn Byte Pair MergesAI & MLHard#byte-pair-encoding#pair-counting35m
- Int8 Quantization Round TripAI & MLEasy#quantization#scale-and-round15m
- Target Passes in Speculative DecodingAI & MLMedium#speculative-decoding#draft-and-verify25m
- Inverted-File Search RecallAI & MLHard#vector-search#inverted-file-index#recall-at-k35m
- Parking Lot Fee CalculatorLow-Level DesignEasy#class-design#pricing-rules15m
- Coin Vending MachineLow-Level DesignEasy#class-design#state-machine15m
- LRU Cache With ExpiryLow-Level DesignMedium#ordered-dict#lazy-expiry#min-heap30m
- Event Bus With Topic WildcardsLow-Level DesignMedium#observer#topic-matching25m
- In-Memory File SystemLow-Level DesignHard#class-design#path-walk#invariants35m
- Best Discount Strategy at CheckoutLow-Level DesignEasy#strategy-pattern#class-design15m
- Elevator Stops in Sweep OrderLow-Level DesignMedium#elevator-sweep#event-simulation25m
- Legal Moves That Keep the King SafeLow-Level DesignHard#board-model#move-generation#check-detection35m
- Lost Updates in a Shared CounterConcurrencyEasy#race-condition#step-simulation15m
- Thread Pool Size for a WorkloadConcurrencyEasy#capacity-math#integer-ceiling10m
- Deadlocked Threads in a Wait GraphConcurrencyMedium#wait-for-graph#cycle-detection25m
- Start Times Behind a SemaphoreConcurrencyMedium#min-heap#event-simulation20m
- Bounded Buffer Hand-OffsConcurrencyHard#bounded-queue#event-simulation#fifo-fairness35m
- Retries in a Compare-and-Swap LoopConcurrencyEasy#compare-and-swap#step-simulation15m
- Finish Times on a Single Event LoopConcurrencyMedium#event-loop#min-heap#event-simulation25m
- Lock Order That Prevents DeadlockConcurrencyMedium#lock-ordering#topological-sort#min-heap25m
- Second Highest SalarySQLEasy#scalar-subquery#aggregate10m
- Emails Used More Than OnceSQLEasy#group-by#having10m
- Customers Who Never OrderedSQLEasy#left-join#anti-join15m
- Paid More Than Their ManagerSQLEasy#self-join15m
- Department With the Highest Average PaySQLMedium#group-by#cte#ties20m
- Top Two Earners per DepartmentSQLMedium#window-function#top-n-per-group25m
- Author Book Counts in One QuerySQLMedium#n-plus-one#left-join#group-by20m
- Running Balance per AccountSQLMedium#window-function#running-total#window-frame25m
- Logged In Three Days in a RowSQLMedium#window-function#consecutive-rows#dedupe25m
- Collapse a Status Log Into RunsSQLHard#gaps-and-islands#window-function#row-number35m
- Same Reading Three Times in a RowSQLMedium#self-join#consecutive-rows#distinct20m
- Highest Paid in Every DepartmentSQLMedium#correlated-subquery#max#ties20m
- Customers Who Bought Every ProductSQLMedium#group-by#having#count-distinct20m
- Users Retained Month Over MonthSQLHard#cte#self-join#retention35m
- Quarterly Sales as ColumnsSQLEasy#pivot#case-when#group-by15m
New lessons land every few weeks
Leave an address and we will tell you when the next one is up. That is the only reason we will use it.