company prep
Meta
Problems frequently reported at Meta, in course order. Solve the must-dos first.
37 easy99 medium20 hardIn-place linked-list rewiring ×11Tree DFS (bottom-up) ×9Stack for matching & nesting ×8Two pointers (opposite ends) ×7String parsing ×7Tree BFS (level order) ×6
02 · Arrays & Strings in Java
- #1672Richest Customer WealthEasy
- #1431Kids With the Greatest Number of CandiesEasy
06 · Mindset & Problem Solving
- #1480Running Sum of 1d ArrayEasy
07 · Big-O & Complexity
- #69Sqrt(x)Easy
08 · Recursion
- #24Swap Nodes in PairsMedium
- #50Pow(x, n)Mediummust-do
09 · Math & Number Theory
- #43Multiply StringsMediummust-do
- #528Random Pick with WeightMediummust-do
10 · Arrays & Strings
- #121Best Time to Buy and Sell StockEasymust-do
- #31Next PermutationMediummust-do
11 · Matrices & Simulation
- #48Rotate ImageMediummust-do
- #73Set Matrix ZeroesMediummust-do
12 · Two Pointers
- #125Valid PalindromeEasymust-do
- #977Squares of a Sorted ArrayEasy
- #167Two Sum II - Input Array Is SortedMediummust-do
- #163Sum ClosestMedium
- #26Remove Duplicates from Sorted ArrayEasy
- #80Remove Duplicates from Sorted Array IIMedium
- #283Move ZeroesEasy
- #88Merge Sorted ArrayEasymust-do
13 · Sliding Window
- #643Maximum Average Subarray IEasy
- #424Longest Repeating Character ReplacementMediummust-do
- #438Find All Anagrams in a StringMediummust-do
- #76Minimum Window SubstringHardmust-do
- #209Minimum Size Subarray SumMediummust-do
- #1004Max Consecutive Ones IIIMediummust-do
14 · Hashing & Prefix Sums
- #303Range Sum Query - ImmutableEasymust-do
- #304Range Sum Query 2D - ImmutableMedium
- #560Subarray Sum Equals KMediummust-do
- #525Contiguous ArrayMedium
- #974Subarray Sums Divisible by KMedium
15 · Linked Lists
- #21Merge Two Sorted ListsEasymust-do
- #141Linked List CycleEasymust-do
- #234Palindrome Linked ListEasymust-do
- #19Remove Nth Node From End of ListMediummust-do
- #92Reverse Linked List IIMedium
- #143Reorder ListMediummust-do
- #2Add Two NumbersMediummust-do
- #138Copy List with Random PointerMedium
- #25Reverse Nodes in k-GroupHardmust-do
16 · Stacks & Monotonic Stack
- #155Min StackMediummust-do
- #150Evaluate Reverse Polish NotationMediummust-do
- #739Daily TemperaturesMediummust-do
- #84Largest Rectangle in HistogramHardmust-do
- #394Decode StringMediummust-do
- #71Simplify PathMedium
- #32Longest Valid ParenthesesHard
- #844Backspace String CompareEasy
17 · Queues & Deques
- #232Implement Queue using StacksEasymust-do
- #622Design Circular QueueMediummust-do
- #239Sliding Window MaximumHardmust-do
18 · Binary Search
- #34Find First and Last Position of Element in Sorted ArrayMediummust-do
- #74Search a 2D MatrixMedium
- #153Find Minimum in Rotated Sorted ArrayMediummust-do
- #875Koko Eating BananasMediummust-do
- #1011Capacity To Ship Packages Within D DaysMedium
- #162Find Peak ElementMediummust-do
- #278First Bad VersionEasymust-do
- #658Find K Closest ElementsMedium
19 · Sorting
20 · String Parsing & Expression Evaluation
- #13Roman to IntegerEasymust-do
- #151Reverse Words in a StringMediummust-do
- #8String to Integer (atoi)Mediummust-do
- #227Basic Calculator IIMediummust-do
- #224Basic CalculatorHardmust-do
- #271Encode and Decode StringsMediummust-do
21 · Tree Traversals
- #94Binary Tree Inorder TraversalEasymust-do
- #637Average of Levels in Binary TreeEasy
- #199Binary Tree Right Side ViewMediummust-do
- #103Binary Tree Zigzag Level Order TraversalMedium
- #117Populating Next Right Pointers in Each Node IIMedium
- #662Maximum Width of Binary TreeMedium
- #863All Nodes Distance K in Binary TreeMediummust-do
22 · Tree Recursion
- #110Balanced Binary TreeEasy
- #100Same TreeEasy
- #226Invert Binary TreeEasymust-do
- #101Symmetric TreeEasymust-do
- #572Subtree of Another TreeEasymust-do
- #112Path SumEasy
- #113Path Sum IIMediummust-do
- #129Sum Root to Leaf NumbersMedium
- #437Path Sum IIIMediummust-do
- #543Diameter of Binary TreeEasymust-do
- #124Binary Tree Maximum Path SumHardmust-do
- #236Lowest Common Ancestor of a Binary TreeMediummust-do
- #114Flatten Binary Tree to Linked ListMedium
23 · Binary Search Trees
- #700Search in a Binary Search TreeEasy
- #98Validate Binary Search TreeMediummust-do
- #235Lowest Common Ancestor of a Binary Search TreeMediummust-do
- #285Inorder Successor in BSTMediummust-do
- #108Convert Sorted Array to Binary Search TreeEasy
- #173Binary Search Tree IteratorMediummust-do
24 · Heaps & Priority Queues
- #703Kth Largest Element in a StreamEasymust-do
- #215Kth Largest Element in an ArrayMediummust-do
- #347Top K Frequent ElementsMediummust-do
- #973K Closest Points to OriginMediummust-do
- #23Merge k Sorted ListsHardmust-do
25 · Tries
- #208Implement Trie (Prefix Tree)Mediummust-do
- #211Design Add and Search Words Data StructureMediummust-do
- #1268Search Suggestions SystemMediummust-do
26 · Graphs: BFS & DFS
- #695Max Area of IslandMediummust-do
- #133Clone GraphMediummust-do
- #54201 MatrixMediummust-do
- #286Walls and GatesMedium
- #785Is Graph Bipartite?Mediummust-do
- #1091Shortest Path in Binary MatrixMediummust-do
- #909Snakes and LaddersMedium
- #1197Minimum Knight MovesMedium
- #127Word LadderHardmust-do
27 · Shortest Paths
- #787Cheapest Flights Within K StopsMediummust-do
- #778Swim in Rising WaterHard
- #1976Number of Ways to Arrive at DestinationMedium
28 · Union-Find & Minimum Spanning Trees
- #547Number of ProvincesMediummust-do
- #721Accounts MergeMediummust-do
- #1489Find Critical and Pseudo-Critical Edges in Minimum Spanning TreeHard
29 · Topological Sort
- #207Course ScheduleMediummust-do
- #953Verifying an Alien DictionaryEasy
- #269Alien DictionaryHardmust-do
- #329Longest Increasing Path in a MatrixHardmust-do
30 · Advanced Graphs: Euler Paths, Bridges & SCCs
- #332Reconstruct ItineraryHardmust-do
- #1192Critical Connections in a NetworkHardmust-do
- #399Evaluate DivisionMediummust-do
31 · Backtracking
- #78SubsetsMediummust-do
- #77CombinationsMediummust-do
- #90Subsets IIMediummust-do
- #46PermutationsMediummust-do
- #40Combination Sum IIMedium
- #17Letter Combinations of a Phone NumberMedium
- #131Palindrome PartitioningMedium
- #51N-QueensHardmust-do
32 · Greedy Algorithms
- #55Jump GameMediummust-do
- #763Partition LabelsMedium
- #678Valid Parenthesis StringMediummust-do
33 · Intervals
- #228Summary RangesEasy
- #252Meeting RoomsEasy
- #56Merge IntervalsMediummust-do
- #57Insert IntervalMediummust-do
- #435Non-overlapping IntervalsMediummust-do
- #1094Car PoolingMedium
34 · Bit Manipulation
- #268Missing NumberEasymust-do
- #67Add BinaryEasymust-do
- #371Sum of Two IntegersMedium
35 · Dynamic Programming
- #91Decode WaysMediummust-do
- #139Word BreakMediummust-do
- #377Combination Sum IVMedium
- #416Partition Equal Subset SumMediummust-do
- #62Unique PathsMediummust-do
- #1143Longest Common SubsequenceMediummust-do
36 · DP Patterns
- #10Regular Expression MatchingHardmust-do
- #647Palindromic SubstringsMediummust-do
- #494Target SumMediummust-do
38 · Segment Trees, Fenwick & String Matching
- #315Count of Smaller Numbers After SelfHardmust-do
- #459Repeated Substring PatternEasy
- #1392Longest Happy PrefixHardmust-do
- #1044Longest Duplicate SubstringHard