← All patterns
Heap / Top-K

Top-K Elements

196 practice questions|Medium

When to use it

Utilize a priority queue to fetch the largest or smallest elements efficiently in O(n log k).

Key Signals & Indicators

  • Problem requires sorting or retrieving the largest/smallest k items
  • Finding frequent elements, nearest points, or Kth boundary elements
  • Avoids sorting the entire collection in O(n log n)

Pattern Boilerplate

c++
// C++ Top-K Elements Template
#include <vector>
#include <queue>

std::vector<int> getTopKElements(const std::vector<int>& nums, int k) {
    // Min-heap to keep track of largest elements
    std::priority_queue<int, std::vector<int>, std::greater<int>> minHeap;
    
    for (int num : nums) {
        minHeap.push(num);
        if (minHeap.size() > k) {
            minHeap.pop(); // Keep heap size <= k
        }
    }
    
    std::vector<int> result;
    while (!minHeap.empty()) {
        result.push_back(minHeap.top());
        minHeap.pop();
    }
    return result;
}

Problems using this pattern

1Average Height of Buildings in Each SegmentMedium
ArraySortingHeap (Priority Queue)
Solve →
2Avoid Flood in The CityMedium
ArrayHash TableBinary Search
Solve →
3Campus BikesMedium
ArraySortingHeap (Priority Queue)
Solve →
4Car Fleet IIHard
ArrayMathStack
Solve →
5Car PoolingMedium
ArraySortingHeap (Priority Queue)
Solve →
6Cheapest Flights Within K StopsMedium
Dynamic ProgrammingDepth-First SearchBreadth-First Search
Solve →
7Checking Existence of Edge Length Limited Paths IIHard
Depth-First SearchUnion-FindGraph Theory
Solve →
8Choose K Elements With Maximum SumMedium
ArraySortingHeap (Priority Queue)
Solve →
9Closest Binary Search Tree Value IIHard
Two PointersStackTree
Solve →
10Connecting Cities With Minimum CostMedium
Union-FindGraph TheoryHeap (Priority Queue)
Solve →
11Constrained Subsequence SumHard
ArrayDynamic ProgrammingQueue
Solve →
12Construct String With Repeat LimitMedium
Hash TableStringGreedy
Solve →
13Construct Target Array With Multiple SumsHard
ArrayHeap (Priority Queue)
Solve →
14Continuous SubarraysMedium
ArrayQueueSliding Window
Solve →
15Course Schedule IIIHard
ArrayGreedySorting
Solve →
16Cut Off Trees for Golf EventHard
ArrayBreadth-First SearchHeap (Priority Queue)
Solve →
17Delete Greatest Value in Each RowEasy
ArraySortingHeap (Priority Queue)
Solve →
18Delivering Boxes from Storage to PortsHard
ArrayDynamic ProgrammingSegment Tree
Solve →
19Design a 3D Binary Matrix with Efficient Layer TrackingMedium
ArrayHash TableDesign
Solve →
20Design a File Sharing SystemMedium
Hash TableDesignSorting
Solve →
21Design a Food Rating SystemMedium
ArrayHash TableString
Solve →
22Design a Number Container SystemMedium
Hash TableDesignHeap (Priority Queue)
Solve →
23Design an Array Statistics Tracker Hard
Hash TableBinary SearchDesign
Solve →
24Design Auction SystemMedium
Hash TableDesignHeap (Priority Queue)
Solve →
25Design Graph With Shortest Path CalculatorHard
Graph TheoryDesignHeap (Priority Queue)
Solve →
26Design Movie Rental SystemHard
ArrayHash TableDesign
Solve →
27Design Search Autocomplete SystemHard
StringDepth-First SearchDesign
Solve →
28Design Task ManagerMedium
Hash TableDesignHeap (Priority Queue)
Solve →
29Design TwitterMedium
Hash TableLinked ListDesign
Solve →
30Design Video Sharing PlatformHard
Hash TableDesignHeap (Priority Queue)
Solve →
31Diagonal Traverse IIMedium
ArraySortingHeap (Priority Queue)
Solve →
32Digit Operations to Make Two Integers EqualMedium
MathGraph TheoryHeap (Priority Queue)
Solve →
33Dinner Plate StacksHard
Hash TableStackDesign
Solve →
34Distant BarcodesMedium
ArrayHash TableGreedy
Solve →
35Divide an Array Into Subarrays With Minimum Cost IIHard
ArrayHash TableSliding Window
Solve →
36Divide Intervals Into Minimum Number of GroupsMedium
ArrayTwo PointersGreedy
Solve →
37Earliest Second to Mark Indices IIHard
ArrayBinary SearchGreedy
Solve →
38Employee Free TimeHard
ArraySweep LineSorting
Solve →
39Exam RoomMedium
DesignHeap (Priority Queue)Ordered Set
Solve →
40Final Array State After K Multiplication Operations IEasy
ArrayMathHeap (Priority Queue)
Solve →
41Final Array State After K Multiplication Operations IIHard
ArrayHeap (Priority Queue)Simulation
Solve →
42Find a Safe Walk Through a GridMedium
ArrayBreadth-First SearchGraph Theory
Solve →
43Find Building Where Alice and Bob Can MeetHard
ArrayBinary SearchStack
Solve →
44Find Edges in Shortest PathsHard
Depth-First SearchBreadth-First SearchGraph Theory
Solve →
45Find K Closest ElementsMedium
ArrayTwo PointersBinary Search
Solve →
46Find K Pairs with Smallest SumsMedium
ArrayHeap (Priority Queue)
Solve →
47Find Kth Largest XOR Coordinate ValueMedium
ArrayDivide and ConquerBit Manipulation
Solve →
48Find Median from Data StreamHard
Two PointersDesignSorting
Solve →
49Find Minimum Time to Reach Last Room IMedium
ArrayGraph TheoryHeap (Priority Queue)
Solve →
50Find Minimum Time to Reach Last Room IIMedium
ArrayGraph TheoryHeap (Priority Queue)
Solve →
51Find Number of Coins to Place in Tree NodesHard
Dynamic ProgrammingTreeDepth-First Search
Solve →
52Find Score of an Array After Marking All ElementsMedium
ArrayHash TableSorting
Solve →
53Find Servers That Handled Most Number of RequestsHard
ArrayHeap (Priority Queue)Simulation
Solve →
54Find Shortest Path with K HopsHard
Graph TheoryHeap (Priority Queue)Shortest Path
Solve →
55Find Subsequence of Length K With the Largest SumEasy
ArrayHash TableSorting
Solve →
56Find the K-Sum of an ArrayHard
ArraySortingHeap (Priority Queue)
Solve →
57Find the Kth Largest Integer in the ArrayMedium
ArrayStringDivide and Conquer
Solve →
58Find the Kth Smallest Sum of a Matrix With Sorted RowsHard
ArrayBinary SearchHeap (Priority Queue)
Solve →
59Find the Safest Path in a GridMedium
ArrayBinary SearchBreadth-First Search
Solve →
60Find X-Sum of All K-Long Subarrays IEasy
ArrayHash TableSliding Window
Solve →
61Find X-Sum of All K-Long Subarrays IIHard
ArrayHash TableSliding Window
Solve →
62Finding MK AverageHard
DesignQueueHeap (Priority Queue)
Solve →
63Furthest Building You Can ReachMedium
ArrayGreedyHeap (Priority Queue)
Solve →
64Get Biggest Three Rhombus Sums in a GridMedium
ArrayMathSorting
Solve →
65High FiveEasy
ArrayHash TableSorting
Solve →
66IPOHard
ArrayGreedySorting
Solve →
67Jump Game VIMedium
ArrayDynamic ProgrammingQueue
Solve →
68K Closest Points to OriginMedium
ArrayMathDivide and Conquer
Solve →
69K Empty SlotsHard
ArrayBinary Indexed TreeSegment Tree
Solve →
70K Highest Ranked Items Within a Price RangeMedium
ArrayBreadth-First SearchSorting
Solve →
71K-th Nearest Obstacle QueriesMedium
ArrayHeap (Priority Queue)
Solve →
72K-th Smallest Prime FractionMedium
ArrayTwo PointersBinary Search
Solve →
73Kth Largest Element in a StreamEasy
TreeDesignBinary Search Tree
Solve →
74Kth Largest Element in an ArrayMedium
ArrayDivide and ConquerSorting
Solve →
75Kth Smallest Element in a Sorted MatrixMedium
ArrayBinary SearchSorting
Solve →
76Largest Number After Digit Swaps by ParityEasy
SortingHeap (Priority Queue)
Solve →
77Last Stone WeightEasy
ArrayHeap (Priority Queue)
Solve →
78Lexicographically Minimum String After Removing StarsMedium
Hash TableStringStack
Solve →
79Longest Continuous Subarray With Absolute Diff Less Than or Equal to LimitMedium
ArrayQueueSliding Window
Solve →
80Longest Happy StringMedium
StringGreedyHeap (Priority Queue)
Solve →
81Longest Uploaded PrefixMedium
Hash TableBinary SearchUnion-Find
Solve →
82Make Array Non-decreasing or Non-increasingHard
ArrayDynamic ProgrammingGreedy
Solve →
83Make Array Zero by Subtracting Equal AmountsEasy
ArrayHash TableGreedy
Solve →
84Make the Prefix Sum Non-negativeMedium
ArrayGreedyHeap (Priority Queue)
Solve →
85Mark Elements on Array by Performing QueriesMedium
ArrayHash TableSorting
Solve →
86Max Sum of a Pair With Equal Sum of DigitsMedium
ArrayHash TableSorting
Solve →
87Max Value of EquationHard
ArrayQueueSliding Window
Solve →
88Maximal Score After Applying K OperationsMedium
ArrayGreedyHeap (Priority Queue)
Solve →
89Maximize Points After Choosing K TasksMedium
ArrayGreedySorting
Solve →
90Maximize Y‑Sum by Picking a Triplet of Distinct X‑ValuesMedium
ArrayHash TableGreedy
Solve →
91Maximum Average Pass RatioMedium
ArrayGreedyHeap (Priority Queue)
Solve →
92Maximum Number of Eaten ApplesMedium
ArrayGreedyHeap (Priority Queue)
Solve →
93Maximum Number of Events That Can Be AttendedMedium
ArrayGreedySorting
Solve →
94Maximum Number of OnesHard
MathGreedySorting
Solve →
95Maximum Number of Points From Grid QueriesHard
ArrayTwo PointersBreadth-First Search
Solve →
96Maximum Number of Robots Within BudgetHard
ArrayBinary SearchQueue
Solve →
97Maximum Performance of a TeamHard
ArrayGreedySorting
Solve →
98Maximum Product After K IncrementsMedium
ArrayGreedyHeap (Priority Queue)
Solve →
99Maximum Product of Two Elements in an ArrayEasy
ArraySortingHeap (Priority Queue)
Solve →
100Maximum Score After Binary SwapsMedium
ArrayStringGreedy
Solve →
101Maximum Score From Removing StonesMedium
MathGreedyHeap (Priority Queue)
Solve →
102Maximum Spending After Buying ItemsHard
ArrayGreedySorting
Solve →
103Maximum Star Sum of a GraphMedium
ArrayGreedyGraph Theory
Solve →
104Maximum Subsequence ScoreMedium
ArrayGreedySorting
Solve →
105Maximum Sum of Three Numbers Divisible by ThreeMedium
ArrayGreedySorting
Solve →
106Maximum Sum With at Most K ElementsMedium
ArrayGreedySorting
Solve →
107Maximum Total from Optimal Activation OrderMedium
ArrayTwo PointersGreedy
Solve →
108Maximum Total Importance of RoadsMedium
GreedyGraph TheorySorting
Solve →
109Maximum Transactions Without Negative BalanceMedium
ArrayGreedyHeap (Priority Queue)
Solve →
110Meeting Rooms IIMedium
ArrayTwo PointersGreedy
Solve →
111Meeting Rooms IIIHard
ArrayHash TableSorting
Solve →
112Merge k Sorted ListsHard
Linked ListDivide and ConquerHeap (Priority Queue)
Solve →
113Mice and CheeseMedium
ArrayGreedySorting
Solve →
114Minimize Deviation in ArrayHard
ArrayGreedyHeap (Priority Queue)
Solve →
115Minimum Amount of Time to Fill CupsEasy
ArrayGreedySorting
Solve →
116Minimum Cost of a Path With Special RoadsMedium
ArrayGraph TheoryHeap (Priority Queue)
Solve →
117Minimum Cost Path with Edge ReversalsMedium
Graph TheoryHeap (Priority Queue)Shortest Path
Solve →
118Minimum Cost to Buy ApplesMedium
ArrayGraph TheoryHeap (Priority Queue)
Solve →
119Minimum Cost to Connect SticksMedium
ArrayGreedyHeap (Priority Queue)
Solve →
120Minimum Cost to Hire K WorkersHard
ArrayGreedySorting
Solve →
121Minimum Cost to Make at Least One Valid Path in a GridHard
ArrayBreadth-First SearchGraph Theory
Solve →
122Minimum Cost to Reach City With DiscountsMedium
Graph TheoryHeap (Priority Queue)Shortest Path
Solve →
123Minimum Deletions to Make Array DivisibleHard
ArrayMathSorting
Solve →
124Minimum Difference in Sums After Removal of ElementsHard
ArrayDynamic ProgrammingHeap (Priority Queue)
Solve →
125Minimum Interval to Include Each QueryHard
ArrayBinary SearchSweep Line
Solve →
126Minimum Moves to Move a Box to Their Target LocationHard
ArrayBreadth-First SearchHeap (Priority Queue)
Solve →
127Minimum Number GameEasy
ArraySortingHeap (Priority Queue)
Solve →
128Minimum Number of Refueling StopsHard
ArrayDynamic ProgrammingGreedy
Solve →
129Minimum Number of Seconds to Make Mountain Height ZeroMedium
ArrayMathBinary Search
Solve →
130Minimum Number of Visited Cells in a GridHard
ArrayDynamic ProgrammingStack
Solve →
131Minimum Obstacle Removal to Reach CornerHard
ArrayBreadth-First SearchGraph Theory
Solve →
132Minimum Operations to Exceed Threshold Value IIMedium
ArrayHeap (Priority Queue)Simulation
Solve →
133Minimum Operations to Halve Array SumMedium
ArrayGreedyHeap (Priority Queue)
Solve →
134Minimum Pair Removal to Sort Array IEasy
ArrayHash TableLinked List
Solve →
135Minimum Pair Removal to Sort Array IIHard
ArrayHash TableLinked List
Solve →
136Minimum Path Cost in a Hidden GridMedium
ArrayDepth-First SearchBreadth-First Search
Solve →
137Minimum Sum of Squared DifferenceMedium
ArrayBinary SearchGreedy
Solve →
138Minimum Time to Build BlocksHard
ArrayMathGreedy
Solve →
139Minimum Time to Visit a Cell In a GridHard
ArrayBreadth-First SearchGraph Theory
Solve →
140Minimum Weighted Subgraph With the Required PathsHard
Graph TheoryHeap (Priority Queue)Shortest Path
Solve →
141Modify Graph Edge WeightsHard
Graph TheoryHeap (Priority Queue)Shortest Path
Solve →
142Most Frequent IDsMedium
ArrayHash TableHeap (Priority Queue)
Solve →
143Most Popular Video CreatorMedium
ArrayHash TableString
Solve →
144Network Delay TimeMedium
Depth-First SearchBreadth-First SearchGraph Theory
Solve →
145Number of Orders in the BacklogMedium
ArrayHeap (Priority Queue)Simulation
Solve →
146Number of Possible Sets of Closing BranchesHard
Bit ManipulationGraph TheoryHeap (Priority Queue)
Solve →
147Number of Restricted Paths From First to Last NodeMedium
Dynamic ProgrammingGraph TheoryTopological Sort
Solve →
148Optimize Water Distribution in a VillageHard
Union-FindGraph TheoryHeap (Priority Queue)
Solve →
149Path With Maximum Minimum ValueMedium
ArrayBinary SearchDepth-First Search
Solve →
150Path with Maximum ProbabilityMedium
ArrayGraph TheoryHeap (Priority Queue)
Solve →
151Path With Minimum EffortMedium
ArrayBinary SearchDepth-First Search
Solve →
152Pizza With 3n SlicesHard
ArrayDynamic ProgrammingGreedy
Solve →
153Power Grid MaintenanceMedium
ArrayHash TableDepth-First Search
Solve →
154Process Tasks Using ServersMedium
ArrayHeap (Priority Queue)
Solve →
155Put Marbles in BagsHard
ArrayGreedySorting
Solve →
156Query Kth Smallest Trimmed NumberMedium
ArrayStringDivide and Conquer
Solve →
157Reachable Nodes In Subdivided GraphHard
Graph TheoryHeap (Priority Queue)Shortest Path
Solve →
158Rearrange String k Distance ApartHard
Hash TableStringGreedy
Solve →
159Reconstruct ItineraryHard
ArrayStringDepth-First Search
Solve →
160Reduce Array Size to The HalfMedium
ArrayHash TableGreedy
Solve →
161Relative RanksEasy
ArraySortingHeap (Priority Queue)
Solve →
162Remove Stones to Minimize the TotalMedium
ArrayGreedyHeap (Priority Queue)
Solve →
163Reorganize StringMedium
Hash TableStringGreedy
Solve →
164Replace Question Marks in String to Minimize Its ValueMedium
Hash TableStringGreedy
Solve →
165Reward Top K StudentsMedium
ArrayHash TableString
Solve →
166Search Suggestions SystemMedium
ArrayStringBinary Search
Solve →
167Seat Reservation ManagerMedium
DesignHeap (Priority Queue)
Solve →
168Sell Diminishing-Valued Colored BallsMedium
ArrayMathBinary Search
Solve →
169Sequentially Ordinal Rank TrackerHard
DesignHeap (Priority Queue)Data Stream
Solve →
170Shortest Subarray with Sum at Least KHard
ArrayBinary SearchQueue
Solve →
171Single-Threaded CPUMedium
ArraySortingHeap (Priority Queue)
Solve →
172Sliding Window MaximumHard
ArrayQueueSliding Window
Solve →
173Sliding Window MedianHard
ArrayHash TableSliding Window
Solve →
174Smallest Number in Infinite SetMedium
Hash TableDesignHeap (Priority Queue)
Solve →
175Smallest Range Covering Elements from K ListsHard
ArrayHash TableGreedy
Solve →
176Sort an ArrayMedium
ArrayDivide and ConquerSorting
Solve →
177Sort Characters By FrequencyMedium
Hash TableStringSorting
Solve →
178Split Array into Consecutive SubsequencesMedium
ArrayHash TableGreedy
Solve →
179Stock Price Fluctuation Medium
Hash TableDesignHeap (Priority Queue)
Solve →
180Strong Password CheckerHard
StringGreedyHeap (Priority Queue)
Solve →
181Swim in Rising WaterHard
ArrayBinary SearchDepth-First Search
Solve →
182Take Gifts From the Richest PileEasy
ArrayHeap (Priority Queue)Simulation
Solve →
183Task SchedulerMedium
ArrayHash TableGreedy
Solve →
184The K Weakest Rows in a MatrixEasy
ArrayBinary SearchSorting
Solve →
185The Maze IIMedium
ArrayDepth-First SearchBreadth-First Search
Solve →
186The Maze IIIHard
ArrayStringDepth-First Search
Solve →
187The Number of the Smallest Unoccupied ChairMedium
ArrayHash TableHeap (Priority Queue)
Solve →
188The Skyline ProblemHard
ArrayDivide and ConquerBinary Indexed Tree
Solve →
189Time to Cross a BridgeHard
ArrayHeap (Priority Queue)Simulation
Solve →
190Top K Frequent ElementsMedium
ArrayHash TableDivide and Conquer
Solve →
191Top K Frequent WordsMedium
ArrayHash TableString
Solve →
192Total Cost to Hire K WorkersMedium
ArrayTwo PointersHeap (Priority Queue)
Solve →
193Trapping Rain Water IIHard
ArrayBreadth-First SearchHeap (Priority Queue)
Solve →
194Two Best Non-Overlapping EventsMedium
ArrayBinary SearchDynamic Programming
Solve →
195Ugly Number IIMedium
Hash TableMathDynamic Programming
Solve →
196Zero Array Transformation IIIMedium
ArrayGreedySorting
Solve →