company prep
Bloomberg
Problems frequently reported at Bloomberg, in course order. Solve the must-dos first.
52 easy95 medium11 hardTwo pointers (opposite ends) ×9In-place linked-list rewiring ×9Hash lookup (seen before?) ×9String parsing ×7Frequency counting ×7Tree BFS (level order) ×7
02 · Arrays & Strings in Java
- #58Length of Last WordEasy
- #1929Concatenation of ArrayEasy
- #387First Unique Character in a StringEasymust-do
- #1512Number of Good PairsEasy
06 · Mindset & Problem Solving
- #1480Running Sum of 1d ArrayEasy
- #412Fizz BuzzEasy
07 · Big-O & Complexity
- #69Sqrt(x)Easy
08 · Recursion
- #509Fibonacci NumberEasymust-do
- #344Reverse StringEasy
- #24Swap Nodes in PairsMedium
- #50Pow(x, n)Mediummust-do
- #779K-th Symbol in GrammarMedium
09 · Math & Number Theory
- #9Palindrome NumberEasy
- #7Reverse IntegerMediummust-do
- #172Factorial Trailing ZeroesMedium
10 · Arrays & Strings
- #121Best Time to Buy and Sell StockEasymust-do
- #122Best Time to Buy and Sell Stock IIMedium
- #169Majority ElementEasymust-do
- #238Product of Array Except SelfMediummust-do
- #242Valid AnagramEasymust-do
- #14Longest Common PrefixEasy
- #189Rotate ArrayMedium
- #31Next PermutationMediummust-do
- #41First Missing PositiveHardmust-do
11 · Matrices & Simulation
- #48Rotate ImageMediummust-do
- #73Set Matrix ZeroesMediummust-do
12 · Two Pointers
- #125Valid PalindromeEasymust-do
- #153SumMediummust-do
- #163Sum ClosestMedium
- #11Container With Most WaterMediummust-do
- #42Trapping Rain WaterHardmust-do
- #27Remove ElementEasy
- #26Remove Duplicates from Sorted ArrayEasy
- #80Remove Duplicates from Sorted Array IIMedium
- #283Move ZeroesEasy
- #88Merge Sorted ArrayEasymust-do
- #392Is SubsequenceEasy
- #75Sort ColorsMediummust-do
13 · Sliding Window
- #643Maximum Average Subarray IEasy
- #3Longest Substring Without Repeating CharactersMediummust-do
- #424Longest Repeating Character ReplacementMediummust-do
- #567Permutation in StringMediummust-do
- #209Minimum Size Subarray SumMediummust-do
14 · Hashing & Prefix Sums
- #1Two SumEasymust-do
- #217Contains DuplicateEasymust-do
- #205Isomorphic StringsEasy
- #290Word PatternEasy
- #128Longest Consecutive SequenceMediummust-do
- #303Range Sum Query - ImmutableEasymust-do
- #560Subarray Sum Equals KMediummust-do
15 · Linked Lists
- #206Reverse Linked ListEasymust-do
- #21Merge Two Sorted ListsEasymust-do
- #141Linked List CycleEasymust-do
- #19Remove Nth Node From End of ListMediummust-do
- #142Linked List Cycle IIMediummust-do
- #287Find the Duplicate NumberMediummust-do
- #82Remove Duplicates from Sorted List IIMedium
- #61Rotate ListMedium
- #2Add Two NumbersMediummust-do
- #138Copy List with Random PointerMedium
16 · Stacks & Monotonic Stack
- #20Valid ParenthesesEasymust-do
- #155Min StackMediummust-do
- #739Daily TemperaturesMediummust-do
- #496Next Greater Element IEasy
- #84Largest Rectangle in HistogramHardmust-do
- #394Decode StringMediummust-do
- #735Asteroid CollisionMediummust-do
17 · Queues & Deques
- #232Implement Queue using StacksEasymust-do
- #225Implement Stack using QueuesEasy
18 · Binary Search
- #35Search Insert PositionEasymust-do
- #34Find First and Last Position of Element in Sorted ArrayMediummust-do
- #74Search a 2D MatrixMedium
- #33Search in Rotated Sorted ArrayMediummust-do
- #153Find Minimum in Rotated Sorted ArrayMediummust-do
- #875Koko Eating BananasMediummust-do
- #162Find Peak ElementMediummust-do
- #4Median of Two Sorted ArraysHard
19 · Sorting
- #274H-IndexMedium
20 · String Parsing & Expression Evaluation
- #13Roman to IntegerEasymust-do
- #12Integer to RomanMedium
- #151Reverse Words in a StringMediummust-do
- #8String to Integer (atoi)Mediummust-do
- #227Basic Calculator IIMediummust-do
- #224Basic CalculatorHardmust-do
21 · Tree Traversals
- #94Binary Tree Inorder TraversalEasymust-do
- #102Binary Tree Level Order TraversalMediummust-do
- #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
- #104Maximum Depth of Binary TreeEasymust-do
- #110Balanced Binary TreeEasy
- #100Same TreeEasy
- #226Invert Binary TreeEasymust-do
- #101Symmetric TreeEasymust-do
- #112Path SumEasy
- #113Path Sum IIMediummust-do
- #222Count Complete Tree NodesMedium
- #543Diameter of Binary TreeEasymust-do
- #105Construct Binary Tree from Preorder and Inorder TraversalMedium
- #106Construct Binary Tree from Inorder and Postorder TraversalMedium
23 · Binary Search Trees
- #700Search in a Binary Search TreeEasy
- #701Insert into a Binary Search TreeMedium
- #450Delete Node in a BSTMediummust-do
- #98Validate Binary Search TreeMediummust-do
- #230Kth Smallest Element in a BSTMediummust-do
- #235Lowest Common Ancestor of a Binary Search TreeMediummust-do
- #220Contains Duplicate IIIHard
24 · Heaps & Priority Queues
- #1046Last Stone WeightEasy
- #692Top K Frequent WordsMedium
25 · Tries
- #421Maximum XOR of Two Numbers in an ArrayMedium
26 · Graphs: BFS & DFS
- #200Number of IslandsMediummust-do
- #695Max Area of IslandMediummust-do
- #133Clone GraphMediummust-do
- #130Surrounded RegionsMedium
- #1730Shortest Path to Get FoodMedium
- #909Snakes and LaddersMedium
- #433Minimum Genetic MutationMedium
28 · Union-Find & Minimum Spanning Trees
- #547Number of ProvincesMediummust-do
29 · Topological Sort
- #329Longest Increasing Path in a MatrixHardmust-do
30 · Advanced Graphs: Euler Paths, Bridges & SCCs
- #399Evaluate DivisionMediummust-do
31 · Backtracking
- #78SubsetsMediummust-do
- #90Subsets IIMediummust-do
- #46PermutationsMediummust-do
- #22Generate ParenthesesMediummust-do
- #79Word SearchMediummust-do
- #131Palindrome PartitioningMedium
32 · Greedy Algorithms
- #55Jump GameMediummust-do
- #45Jump Game IIMediummust-do
- #134Gas StationMediummust-do
33 · Intervals
- #252Meeting RoomsEasy
- #56Merge IntervalsMediummust-do
- #435Non-overlapping IntervalsMediummust-do
- #253Meeting Rooms IIMediummust-do
34 · Bit Manipulation
- #136Single NumberEasymust-do
- #268Missing NumberEasymust-do
35 · Dynamic Programming
- #70Climbing StairsEasymust-do
- #746Min Cost Climbing StairsEasy
- #139Word BreakMediummust-do
- #322Coin ChangeMediummust-do
- #518Coin Change IIMedium
- #377Combination Sum IVMedium
- #62Unique PathsMediummust-do
- #63Unique Paths IIMedium
- #120TriangleMedium
- #72Edit DistanceMediummust-do
- #5Longest Palindromic SubstringMediummust-do
36 · DP Patterns
- #309Best Time to Buy and Sell Stock with CooldownMediummust-do
- #714Best Time to Buy and Sell Stock with Transaction FeeMedium
- #123Best Time to Buy and Sell Stock IIIHard
- #115Distinct SubsequencesHard
37 · Design Data Structures
- #380Insert Delete GetRandom O(1)Mediummust-do
38 · Segment Trees, Fenwick & String Matching
- #307Range Sum Query - MutableMediummust-do
- #315Count of Smaller Numbers After SelfHardmust-do
- #28Find the Index of the First Occurrence in a StringEasymust-do
- #459Repeated Substring PatternEasy
- #214Shortest PalindromeHard