← All patterns
Searching

Binary Search on Answer

406 practice questions|Hard

When to use it

Apply binary search on the range of potential values using a validation function.

Key Signals & Indicators

  • Target variable is bounded (e.g. min possible output to max possible output)
  • Feasible check is monotonic (if X is feasible, then X+1 is feasible, etc.)
  • Finding an optimized min/max value under constraints

Pattern Boilerplate

c++
// C++ Binary Search on Answer Template
#include <vector>

bool isValid(const std::vector<int>& arr, int mid, int constraint);

int searchOnAnswer(const std::vector<int>& arr, int constraint) {
    int low = 1; // Minimum possible answer
    int high = 1e9; // Maximum possible answer
    int ans = -1;
    
    while (low <= high) {
        int mid = low + (high - low) / 2;
        if (isValid(arr, mid, constraint)) {
            ans = mid; // Candidate solution found
            high = mid - 1; // Try to find a smaller feasible answer
        } else {
            low = mid + 1; // Mid is too small, increase target space
        }
    }
    return ans;
}

Problems using this pattern

1132 PatternMedium
ArrayBinary SearchStack
Solve →
23Sum SmallerMedium
ArrayTwo PointersBinary Search
Solve →
3Adjacent Increasing Subarrays Detection IIMedium
ArrayBinary Search
Solve →
4All Elements in Two Binary Search TreesMedium
TreeDepth-First SearchBinary Search Tree
Solve →
5Apply Operations to Maximize Frequency ScoreHard
ArrayBinary SearchSliding Window
Solve →
6Apply Operations to Maximize ScoreHard
ArrayMathStack
Solve →
7Arranging CoinsEasy
MathBinary Search
Solve →
8Avoid Flood in The CityMedium
ArrayHash TableBinary Search
Solve →
9Balance a Binary Search TreeMedium
Divide and ConquerGreedyTree
Solve →
10Beautiful Towers IMedium
ArrayStackMonotonic Stack
Solve →
11Beautiful Towers IIMedium
ArrayStackMonotonic Stack
Solve →
12Binary Search Tree Iterator IIMedium
StackTreeDesign
Solve →
13Binary Search Tree IteratorMedium
StackTreeDesign
Solve →
14Binary Search Tree to Greater Sum TreeMedium
TreeDepth-First SearchBinary Search Tree
Solve →
15Binary SearchEasy
ArrayBinary Search
Solve →
16Binary Searchable Numbers in an Unsorted ArrayMedium
ArrayBinary SearchStack
Solve →
17Block Placement QueriesHard
ArrayBinary SearchBinary Indexed Tree
Solve →
18Booking Concert Tickets in GroupsHard
Binary SearchDesignBinary Indexed Tree
Solve →
19Buildings With an Ocean ViewMedium
ArrayStackMonotonic Stack
Solve →
20Capacity To Ship Packages Within D DaysMedium
ArrayBinary Search
Solve →
21Car Fleet IIHard
ArrayMathStack
Solve →
22Car FleetMedium
ArrayStackSorting
Solve →
23Check If a Number Is Majority Element in a Sorted ArrayEasy
ArrayBinary Search
Solve →
24Check If N and Its Double ExistEasy
ArrayHash TableTwo Pointers
Solve →
25Closest Binary Search Tree Value IIHard
Two PointersStackTree
Solve →
26Closest Binary Search Tree ValueEasy
Binary SearchTreeDepth-First Search
Solve →
27Closest Equal Element QueriesMedium
ArrayHash TableBinary Search
Solve →
28Closest Nodes Queries in a Binary Search TreeMedium
ArrayBinary SearchTree
Solve →
29Closest RoomHard
ArrayBinary SearchSorting
Solve →
30Compare Strings by Frequency of the Smallest CharacterMedium
ArrayHash TableString
Solve →
31Constrained Subsequence SumHard
ArrayDynamic ProgrammingQueue
Solve →
32Construct Binary Search Tree from Preorder TraversalMedium
ArrayStackTree
Solve →
33Continuous SubarraysMedium
ArrayQueueSliding Window
Solve →
34Convert Binary Search Tree to Sorted Doubly Linked ListMedium
Linked ListStackTree
Solve →
35Convert BST to Greater TreeMedium
TreeDepth-First SearchBinary Search Tree
Solve →
36Convert Sorted Array to Binary Search TreeEasy
ArrayDivide and ConquerTree
Solve →
37Convert Sorted List to Binary Search TreeMedium
Linked ListDivide and ConquerTree
Solve →
38Count Bowl SubarraysMedium
ArrayStackMonotonic Stack
Solve →
39Count Complete Tree NodesEasy
Binary SearchBit ManipulationTree
Solve →
40Count Good Triplets in an ArrayHard
ArrayBinary SearchDivide and Conquer
Solve →
41Count Negative Numbers in a Sorted MatrixEasy
ArrayBinary SearchMatrix
Solve →
42Count Non-Decreasing Subarrays After K OperationsHard
ArrayStackSegment Tree
Solve →
43Count Number of Rectangles Containing Each PointMedium
ArrayHash TableBinary Search
Solve →
44Count of Range SumHard
ArrayBinary SearchDivide and Conquer
Solve →
45Count of Smaller Numbers After SelfHard
ArrayBinary SearchDivide and Conquer
Solve →
46Count Pairs in Two ArraysMedium
ArrayTwo PointersBinary Search
Solve →
47Count Pairs Of NodesHard
ArrayHash TableTwo Pointers
Solve →
48Count Pairs Whose Sum is Less than TargetEasy
ArrayTwo PointersBinary Search
Solve →
49Count Partitions With Max-Min Difference at Most KMedium
ArrayDynamic ProgrammingQueue
Solve →
50Count Prime-Gap Balanced SubarraysMedium
ArrayMathQueue
Solve →
51Count Subarrays With Fixed BoundsHard
ArrayQueueSliding Window
Solve →
52Count Subarrays With More Ones Than ZerosMedium
ArrayHash TableBinary Search
Solve →
53Count Subarrays With Score Less Than KHard
ArrayBinary SearchSliding Window
Solve →
54Count Submatrices With All OnesMedium
ArrayDynamic ProgrammingStack
Solve →
55Count the Number of Fair PairsMedium
ArrayTwo PointersBinary Search
Solve →
56Count the Number of Incremovable Subarrays IEasy
ArrayTwo PointersBinary Search
Solve →
57Count the Number of Incremovable Subarrays IIHard
ArrayTwo PointersBinary Search
Solve →
58Count the Number of K-Big IndicesHard
ArrayBinary SearchDivide and Conquer
Solve →
59Create Maximum NumberHard
ArrayTwo PointersStack
Solve →
60Create Sorted Array through InstructionsHard
ArrayBinary SearchDivide and Conquer
Solve →
61Cutting RibbonsMedium
ArrayBinary Search
Solve →
62Daily TemperaturesMedium
ArrayStackMonotonic Stack
Solve →
63Data Stream as Disjoint IntervalsHard
Hash TableBinary SearchUnion-Find
Solve →
64Delete Node in a BSTMedium
TreeBinary Search TreeBinary Tree
Solve →
65Delivering Boxes from Storage to PortsHard
ArrayDynamic ProgrammingSegment Tree
Solve →
66Design an Array Statistics Tracker Hard
Hash TableBinary SearchDesign
Solve →
67Design Exam Scores TrackerMedium
ArrayBinary SearchDesign
Solve →
68Design Hit CounterMedium
ArrayBinary SearchDesign
Solve →
69Divide ChocolateHard
ArrayBinary Search
Solve →
70Earliest Second to Mark Indices IMedium
ArrayBinary Search
Solve →
71Earliest Second to Mark Indices IIHard
ArrayBinary SearchGreedy
Solve →
72Equalize Strings by Adding or Removing Characters at EndsMedium
StringBinary SearchDynamic Programming
Solve →
73Escape the Spreading FireHard
ArrayBinary SearchBreadth-First Search
Solve →
74Fair Candy SwapEasy
ArrayHash TableBinary Search
Solve →
75Final Prices With a Special Discount in a ShopEasy
ArrayStackMonotonic Stack
Solve →
76Find a Peak Element IIMedium
ArrayBinary SearchMatrix
Solve →
77Find a Value of a Mysterious Function Closest to TargetHard
ArrayBinary SearchBit Manipulation
Solve →
78Find Beautiful Indices in the Given Array IMedium
Two PointersStringBinary Search
Solve →
79Find Beautiful Indices in the Given Array IIHard
Two PointersStringBinary Search
Solve →
80Find Building Where Alice and Bob Can MeetHard
ArrayBinary SearchStack
Solve →
81Find First and Last Position of Element in Sorted ArrayMedium
ArrayBinary Search
Solve →
82Find in Mountain ArrayHard
ArrayBinary SearchInteractive
Solve →
83Find K Closest ElementsMedium
ArrayTwo PointersBinary Search
Solve →
84Find K-th Smallest Pair DistanceHard
ArrayTwo PointersBinary Search
Solve →
85Find Latest Group of Size MMedium
ArrayHash TableBinary Search
Solve →
86Find Longest Special Substring That Occurs Thrice IMedium
Hash TableStringBinary Search
Solve →
87Find Longest Special Substring That Occurs Thrice IIMedium
Hash TableStringBinary Search
Solve →
88Find Maximum Non-decreasing Array LengthHard
ArrayBinary SearchDynamic Programming
Solve →
89Find Minimum in Rotated Sorted Array IIHard
ArrayBinary Search
Solve →
90Find Minimum in Rotated Sorted ArrayMedium
ArrayBinary Search
Solve →
91Find Mode in Binary Search TreeEasy
TreeDepth-First SearchBinary Search Tree
Solve →
92Find Peak ElementMedium
ArrayBinary Search
Solve →
93Find Positive Integer Solution for a Given EquationMedium
MathTwo PointersBinary Search
Solve →
94Find Products of Elements of Big ArrayHard
ArrayBinary SearchBit Manipulation
Solve →
95Find Right IntervalMedium
ArrayBinary SearchSorting
Solve →
96Find Smallest Common Element in All RowsMedium
ArrayHash TableBinary Search
Solve →
97Find Smallest Letter Greater Than TargetEasy
ArrayBinary Search
Solve →
98Find Subarray With Bitwise OR Closest to KHard
ArrayBinary SearchBit Manipulation
Solve →
99Find Target Indices After Sorting ArrayEasy
ArrayBinary SearchSorting
Solve →
100Find the Distance Value Between Two ArraysEasy
ArrayTwo PointersBinary Search
Solve →
101Find the Duplicate NumberMedium
ArrayTwo PointersBinary Search
Solve →
102Find the Index of the Large IntegerMedium
ArrayBinary SearchInteractive
Solve →
103Find the Kth Smallest Sum of a Matrix With Sorted RowsHard
ArrayBinary SearchHeap (Priority Queue)
Solve →
104Find the Longest Equal SubarrayMedium
ArrayHash TableBinary Search
Solve →
105Find the Longest Valid Obstacle Course at Each PositionHard
ArrayBinary SearchBinary Indexed Tree
Solve →
106Find the Median of the Uniqueness ArrayHard
ArrayHash TableBinary Search
Solve →
107Find the Most Competitive SubsequenceMedium
ArrayStackGreedy
Solve →
108Find the Number of Subarrays Where Boundary Elements Are MaximumHard
ArrayBinary SearchStack
Solve →
109Find the Safest Path in a GridMedium
ArrayBinary SearchBreadth-First Search
Solve →
110Find the Smallest Divisor Given a ThresholdMedium
ArrayBinary Search
Solve →
111Find the Student that Will Replace the ChalkMedium
ArrayBinary SearchSimulation
Solve →
112Find Two Non-overlapping Sub-arrays Each With Target SumMedium
ArrayHash TableBinary Search
Solve →
113Find Weighted Median Node in TreeHard
ArrayBinary SearchDynamic Programming
Solve →
114Finding the Number of Visible MountainsMedium
ArrayStackSorting
Solve →
115First Bad VersionEasy
Binary SearchInteractive
Solve →
116Fixed PointEasy
ArrayBinary Search
Solve →
117Frequency of the Most Frequent ElementMedium
ArrayBinary SearchGreedy
Solve →
118Friends Of Appropriate AgesMedium
ArrayTwo PointersBinary Search
Solve →
119Frog Jump IIMedium
ArrayBinary SearchGreedy
Solve →
120Fruits Into Baskets IIEasy
ArrayBinary SearchSegment Tree
Solve →
121Fruits Into Baskets IIIMedium
ArrayBinary SearchSegment Tree
Solve →
122Get Equal Substrings Within BudgetMedium
StringBinary SearchSliding Window
Solve →
123Guess Number Higher or LowerEasy
Binary SearchInteractive
Solve →
124H-Index IIMedium
ArrayBinary Search
Solve →
125HeatersMedium
ArrayTwo PointersBinary Search
Solve →
126House Robber IVMedium
ArrayBinary SearchDynamic Programming
Solve →
127Implement RouterMedium
ArrayHash TableBinary Search
Solve →
128Increasing Order Search TreeEasy
StackTreeDepth-First Search
Solve →
129Inorder Successor in BST IIMedium
TreeBinary Search TreeBinary Tree
Solve →
130Inorder Successor in BSTMedium
TreeDepth-First SearchBinary Search Tree
Solve →
131Insert into a Binary Search TreeMedium
TreeBinary Search TreeBinary Tree
Solve →
132Intersection of Three Sorted ArraysEasy
ArrayHash TableBinary Search
Solve →
133Intersection of Two Arrays IIEasy
ArrayHash TableTwo Pointers
Solve →
134Intersection of Two ArraysEasy
ArrayHash TableTwo Pointers
Solve →
135Jump Game VIMedium
ArrayDynamic ProgrammingQueue
Solve →
136Jump Game VIIIMedium
ArrayDynamic ProgrammingStack
Solve →
137K-diff Pairs in an ArrayMedium
ArrayHash TableTwo Pointers
Solve →
138K Empty SlotsHard
ArrayBinary Indexed TreeSegment Tree
Solve →
139K-th Smallest Prime FractionMedium
ArrayTwo PointersBinary Search
Solve →
140Koko Eating BananasMedium
ArrayBinary Search
Solve →
141Kth Ancestor of a Tree NodeHard
Binary SearchDynamic ProgrammingBit Manipulation
Solve →
142Kth Largest Element in a StreamEasy
TreeDesignBinary Search Tree
Solve →
143Kth Missing Positive NumberEasy
ArrayBinary Search
Solve →
144Kth Smallest Element in a BSTMedium
TreeDepth-First SearchBinary Search Tree
Solve →
145Kth Smallest Element in a Sorted MatrixMedium
ArrayBinary SearchSorting
Solve →
146Kth Smallest Number in Multiplication TableHard
MathBinary Search
Solve →
147Kth Smallest Product of Two Sorted ArraysHard
ArrayBinary Search
Solve →
148Kth Smallest Subarray SumMedium
ArrayBinary SearchSliding Window
Solve →
149Largest BST SubtreeMedium
Dynamic ProgrammingTreeDepth-First Search
Solve →
150Largest Rectangle in HistogramHard
ArrayStackMonotonic Stack
Solve →
151Last Day Where You Can Still CrossHard
ArrayBinary SearchDepth-First Search
Solve →
152Leftmost Column with at Least a OneMedium
ArrayBinary SearchMatrix
Solve →
153Lexicographically Smallest String After Deleting Duplicate CharactersHard
Hash TableStringStack
Solve →
154Longest Arithmetic SubsequenceMedium
ArrayHash TableBinary Search
Solve →
155Longest Common SubpathHard
ArrayBinary SearchRolling Hash
Solve →
156Longest Continuous Subarray With Absolute Diff Less Than or Equal to LimitMedium
ArrayQueueSliding Window
Solve →
157Longest Duplicate SubstringHard
StringBinary SearchSliding Window
Solve →
158Longest Increasing Subsequence IIHard
ArrayDivide and ConquerDynamic Programming
Solve →
159Longest Increasing SubsequenceMedium
ArrayBinary SearchDynamic Programming
Solve →
160Longest Repeating SubstringMedium
StringBinary SearchDynamic Programming
Solve →
161Longest Square Streak in an ArrayMedium
ArrayHash TableBinary Search
Solve →
162Longest Subsequence With Limited SumEasy
ArrayBinary SearchGreedy
Solve →
163Longest Uploaded PrefixMedium
Hash TableBinary SearchUnion-Find
Solve →
164Longest Well-Performing IntervalMedium
ArrayHash TableStack
Solve →
165Lowest Common Ancestor of a Binary Search TreeMedium
TreeDepth-First SearchBinary Search Tree
Solve →
166Magnetic Force Between Two BallsMedium
ArrayBinary SearchSorting
Solve →
167Make Array EmptyHard
ArrayBinary SearchGreedy
Solve →
168Make Array Non-decreasingMedium
ArrayStackGreedy
Solve →
169Max Chunks To Make Sorted IIHard
ArrayStackGreedy
Solve →
170Max Chunks To Make SortedMedium
ArrayStackGreedy
Solve →
171Max Consecutive Ones IIIMedium
ArrayBinary SearchSliding Window
Solve →
172Max Sum of Rectangle No Larger Than KHard
ArrayBinary SearchMatrix
Solve →
173Max Value of EquationHard
ArrayQueueSliding Window
Solve →
174Maximal Range That Each Element Is Maximum in ItMedium
ArrayStackMonotonic Stack
Solve →
175Maximal RectangleHard
ArrayDynamic ProgrammingStack
Solve →
176Maximize Score of Numbers in RangesMedium
ArrayBinary SearchGreedy
Solve →
177Maximize the Confusion of an ExamMedium
StringBinary SearchSliding Window
Solve →
178Maximize the Minimum Game ScoreHard
ArrayBinary SearchGreedy
Solve →
179Maximize the Minimum Powered CityHard
ArrayBinary SearchGreedy
Solve →
180Maximize the Profit as the SalesmanMedium
ArrayHash TableBinary Search
Solve →
181Maximize Win From Two SegmentsMedium
ArrayBinary SearchSliding Window
Solve →
182Maximum Array Hopping Score IMedium
ArrayDynamic ProgrammingStack
Solve →
183Maximum Array Hopping Score IIMedium
ArrayStackGreedy
Solve →
184Maximum Average Subarray IIHard
ArrayBinary SearchPrefix Sum
Solve →
185Maximum Balanced ShipmentsMedium
ArrayDynamic ProgrammingStack
Solve →
186Maximum Balanced Subsequence SumHard
ArrayBinary SearchDynamic Programming
Solve →
187Maximum Beauty of an Array After Applying OperationMedium
ArrayBinary SearchSliding Window
Solve →
188Maximum Binary TreeMedium
ArrayDivide and ConquerStack
Solve →
189Maximum Candies Allocated to K ChildrenMedium
ArrayBinary Search
Solve →
190Maximum Capacity Within BudgetMedium
ArrayTwo PointersBinary Search
Solve →
191Maximum Coins From K Consecutive BagsMedium
ArrayBinary SearchGreedy
Solve →
192Maximum Coins Heroes Can CollectMedium
ArrayTwo PointersBinary Search
Solve →
193Maximum Count of Positive Integer and Negative IntegerEasy
ArrayBinary SearchCounting
Solve →
194Maximum Distance Between a Pair of ValuesMedium
ArrayTwo PointersBinary Search
Solve →
195Maximum Earnings From TaxiMedium
ArrayHash TableBinary Search
Solve →
196Maximum Font to Fit a Sentence in a ScreenMedium
ArrayStringBinary Search
Solve →
197Maximum Frequency of an Element After Performing Operations IMedium
ArrayBinary SearchSliding Window
Solve →
198Maximum Frequency of an Element After Performing Operations IIHard
ArrayBinary SearchSliding Window
Solve →
199Maximum Fruits Harvested After at Most K StepsHard
ArrayBinary SearchSliding Window
Solve →
200Maximum GCD-Sum of a SubarrayHard
ArrayMathBinary Search
Solve →
201Maximum Length of Repeated SubarrayMedium
ArrayBinary SearchDynamic Programming
Solve →
202Maximum Length of Semi-Decreasing SubarraysMedium
ArrayStackSorting
Solve →
203Maximum Number of AlloysMedium
ArrayBinary Search
Solve →
204Maximum Number of Books You Can TakeHard
ArrayDynamic ProgrammingStack
Solve →
205Maximum Number of Events That Can Be Attended IIHard
ArrayBinary SearchDynamic Programming
Solve →
206Maximum Number of Groups With Increasing LengthHard
ArrayMathBinary Search
Solve →
207Maximum Number of Integers to Choose From a Range IMedium
ArrayHash TableBinary Search
Solve →
208Maximum Number of Integers to Choose From a Range IIMedium
ArrayBinary SearchGreedy
Solve →
209Maximum Number of Removable CharactersMedium
ArrayTwo PointersString
Solve →
210Maximum Number of Robots Within BudgetHard
ArrayBinary SearchQueue
Solve →
211Maximum Number of Tasks You Can AssignHard
ArrayTwo PointersBinary Search
Solve →
212Maximum Number of Upgradable ServersMedium
ArrayMathBinary Search
Solve →
213Maximum Number That Sum of the Prices Is Less Than or Equal to KMedium
MathBinary SearchDynamic Programming
Solve →
214Maximum of Minimum Values in All SubarraysMedium
ArrayStackMonotonic Stack
Solve →
215Maximum Partition FactorHard
ArrayBinary SearchDepth-First Search
Solve →
216Maximum Points Inside the SquareMedium
ArrayHash TableString
Solve →
217Maximum Profit in Job SchedulingHard
ArrayBinary SearchDynamic Programming
Solve →
218Maximum Running Time of N ComputersHard
ArrayBinary SearchGreedy
Solve →
219Maximum Score of a Good SubarrayHard
ArrayTwo PointersBinary Search
Solve →
220Maximum Score of Non-overlapping IntervalsHard
ArrayBinary SearchDynamic Programming
Solve →
221Maximum Side Length of a Square with Sum Less than or Equal to ThresholdMedium
ArrayBinary SearchMatrix
Solve →
222Maximum Subarray Min-ProductMedium
ArrayStackMonotonic Stack
Solve →
223Maximum Sum BST in Binary TreeHard
Dynamic ProgrammingTreeDepth-First Search
Solve →
224Maximum Sum Circular SubarrayMedium
ArrayDivide and ConquerDynamic Programming
Solve →
225Maximum Tastiness of Candy BasketMedium
ArrayBinary SearchGreedy
Solve →
226Maximum Total Beauty of the GardensHard
ArrayTwo PointersBinary Search
Solve →
227Maximum Total Damage With Spell CastingMedium
ArrayHash TableTwo Pointers
Solve →
228Maximum Value at a Given Index in a Bounded ArrayMedium
MathBinary SearchGreedy
Solve →
229Maximum Walls Destroyed by RobotsHard
ArrayBinary SearchDynamic Programming
Solve →
230Maximum White Tiles Covered by a CarpetMedium
ArrayBinary SearchGreedy
Solve →
231Maximum Width RampMedium
ArrayTwo PointersStack
Solve →
232Median of a Row Wise Sorted MatrixMedium
ArrayBinary SearchMatrix
Solve →
233Median of Two Sorted ArraysHard
ArrayBinary SearchDivide and Conquer
Solve →
234Merge BSTs to Create Single BSTHard
ArrayHash TableTree
Solve →
235Minimize Connected Groups by Inserting IntervalMedium
ArrayBinary SearchSliding Window
Solve →
236Minimize Max Distance to Gas StationHard
ArrayBinary Search
Solve →
237Minimize Maximum Component CostMedium
Binary SearchUnion-FindGraph Theory
Solve →
238Minimize Maximum of ArrayMedium
ArrayBinary SearchDynamic Programming
Solve →
239Minimize the Maximum Adjacent Element DifferenceHard
ArrayBinary SearchGreedy
Solve →
240Minimize the Maximum Difference of PairsMedium
ArrayBinary SearchDynamic Programming
Solve →
241Minimize the Maximum Edge Weight of GraphMedium
Binary SearchDepth-First SearchBreadth-First Search
Solve →
242Minimize the Maximum of Two ArraysMedium
MathBinary SearchNumber Theory
Solve →
243Minimized Maximum of Products Distributed to Any StoreMedium
ArrayBinary SearchGreedy
Solve →
244Minimum Absolute Difference Between Elements With ConstraintMedium
ArrayBinary SearchOrdered Set
Solve →
245Minimum Absolute Difference in BSTEasy
TreeDepth-First SearchBreadth-First Search
Solve →
246Minimum Absolute Sum DifferenceMedium
ArrayBinary SearchSorting
Solve →
247Minimum Array Length After Pair RemovalsMedium
ArrayHash TableTwo Pointers
Solve →
248Minimum Common ValueEasy
ArrayHash TableTwo Pointers
Solve →
249Minimum Cost to Make Array EqualHard
ArrayBinary SearchGreedy
Solve →
250Minimum Cost to Make Array EqualindromicMedium
ArrayMathBinary Search
Solve →
251Minimum Cost Tree From Leaf ValuesMedium
ArrayDynamic ProgrammingStack
Solve →
252Minimum Distance Between BST NodesEasy
TreeDepth-First SearchBreadth-First Search
Solve →
253Minimum Garden Perimeter to Collect Enough ApplesMedium
MathBinary Search
Solve →
254Minimum Interval to Include Each QueryHard
ArrayBinary SearchSweep Line
Solve →
255Minimum K to Reduce Array Within LimitMedium
ArrayBinary Search
Solve →
256Minimum Limit of Balls in a BagMedium
ArrayBinary Search
Solve →
257Minimum Number of Days to Make m BouquetsMedium
ArrayBinary Search
Solve →
258Minimum Number of Increments on Subarrays to Form a Target ArrayHard
ArrayDynamic ProgrammingStack
Solve →
259Minimum Number of Operations to Make Array ContinuousHard
ArrayHash TableBinary Search
Solve →
260Minimum Number of Removals to Make Mountain ArrayHard
ArrayBinary SearchDynamic Programming
Solve →
261Minimum Number of Seconds to Make Mountain Height ZeroMedium
ArrayMathBinary Search
Solve →
262Minimum Number of Valid Strings to Form Target IMedium
ArrayStringBinary Search
Solve →
263Minimum Number of Visited Cells in a GridHard
ArrayDynamic ProgrammingStack
Solve →
264Minimum Operations to Convert All Elements to ZeroMedium
ArrayHash TableStack
Solve →
265Minimum Operations to Make a SubsequenceHard
ArrayHash TableBinary Search
Solve →
266Minimum Operations to Make All Array Elements EqualMedium
ArrayBinary SearchSorting
Solve →
267Minimum Operations to Make Array Equal to TargetHard
ArrayDynamic ProgrammingStack
Solve →
268Minimum Operations to Make Binary PalindromeMedium
ArrayTwo PointersBinary Search
Solve →
269Minimum Operations to Make Numbers Non-positiveHard
ArrayBinary Search
Solve →
270Minimum Operations to Make the Array K-IncreasingHard
ArrayBinary Search
Solve →
271Minimum Operations to Reduce X to ZeroMedium
ArrayHash TableBinary Search
Solve →
272Minimum Removals to Balance ArrayMedium
ArrayBinary SearchSliding Window
Solve →
273Minimum Size Subarray SumMedium
ArrayBinary SearchSliding Window
Solve →
274Minimum Space Wasted From PackagingHard
ArrayBinary SearchSorting
Solve →
275Minimum Speed to Arrive on TimeMedium
ArrayBinary Search
Solve →
276Minimum Stability Factor of ArrayHard
ArrayMathBinary Search
Solve →
277Minimum Sum of Squared DifferenceMedium
ArrayBinary SearchGreedy
Solve →
278Minimum Sum of Values by Dividing ArrayHard
ArrayBinary SearchDynamic Programming
Solve →
279Minimum Time for K Connected ComponentsMedium
Binary SearchUnion-FindGraph Theory
Solve →
280Minimum Time to Activate StringMedium
ArrayBinary Search
Solve →
281Minimum Time to Complete All DeliveriesMedium
MathBinary Search
Solve →
282Minimum Time to Complete All TasksHard
ArrayBinary SearchStack
Solve →
283Minimum Time to Complete TripsMedium
ArrayBinary Search
Solve →
284Minimum Time to Eat All GrainsHard
ArrayTwo PointersBinary Search
Solve →
285Minimum Time to Repair CarsMedium
ArrayBinary Search
Solve →
286Missing Element in Sorted ArrayMedium
ArrayBinary Search
Solve →
287Missing NumberEasy
ArrayHash TableMath
Solve →
288Most Beautiful Item for Each QueryMedium
ArrayBinary SearchSorting
Solve →
289Most Profit Assigning WorkMedium
ArrayTwo PointersBinary Search
Solve →
290My Calendar IMedium
ArrayBinary SearchDesign
Solve →
291My Calendar IIMedium
ArrayBinary SearchDesign
Solve →
292My Calendar IIIHard
Binary SearchDesignSegment Tree
Solve →
293Next Greater Element IEasy
ArrayHash TableStack
Solve →
294Next Greater Element IIMedium
ArrayStackMonotonic Stack
Solve →
295Next Greater Node In Linked ListMedium
ArrayLinked ListStack
Solve →
296Nth DigitMedium
MathBinary Search
Solve →
297Nth Magical NumberHard
MathBinary Search
Solve →
298Number of Equal Numbers BlocksMedium
ArrayBinary SearchInteractive
Solve →
299Number of Excellent PairsHard
ArrayHash TableBinary Search
Solve →
300Number of Flowers in Full BloomHard
ArrayHash TableBinary Search
Solve →
301Number of Matching SubsequencesMedium
ArrayHash TableString
Solve →
302Number of Pairs Satisfying InequalityHard
ArrayBinary SearchDivide and Conquer
Solve →
303Number of People That Can Be Seen in a GridMedium
ArrayStackMatrix
Solve →
304Number of Subarrays With AND Value of KHard
ArrayBinary SearchBit Manipulation
Solve →
305Number of Subsequences That Satisfy the Given Sum ConditionMedium
ArrayTwo PointersBinary Search
Solve →
306Number of Valid SubarraysHard
ArrayStackMonotonic Stack
Solve →
307Number of Visible People in a QueueHard
ArrayStackMonotonic Stack
Solve →
308Number of Ways to Reorder Array to Get Same BSTHard
ArrayMathDivide and Conquer
Solve →
309Numbers At Most N Given Digit SetHard
ArrayMathString
Solve →
310Odd Even JumpHard
ArrayDynamic ProgrammingStack
Solve →
311Online ElectionMedium
ArrayHash TableBinary Search
Solve →
312Online Majority Element In SubarrayHard
ArrayBinary SearchDesign
Solve →
313Online Stock SpanMedium
StackDesignMonotonic Stack
Solve →
314Partition Array Into Two Arrays to Minimize Sum DifferenceHard
ArrayTwo PointersBinary Search
Solve →
315Path Existence Queries in a Graph IMedium
ArrayHash TableBinary Search
Solve →
316Path Existence Queries in a Graph IIHard
ArrayTwo PointersBinary Search
Solve →
317Path With Maximum Minimum ValueMedium
ArrayBinary SearchDepth-First Search
Solve →
318Path With Minimum EffortMedium
ArrayBinary SearchDepth-First Search
Solve →
319Peak Index in a Mountain ArrayMedium
ArrayBinary Search
Solve →
320Plates Between CandlesMedium
ArrayStringBinary Search
Solve →
321Pour Water Between Buckets to Make Water Levels EqualMedium
ArrayBinary Search
Solve →
322Preimage Size of Factorial Zeroes FunctionHard
MathBinary Search
Solve →
323Prime Subtraction OperationMedium
ArrayMathBinary Search
Solve →
324Random Pick with BlacklistHard
ArrayHash TableMath
Solve →
325Random Pick with WeightMedium
ArrayMathBinary Search
Solve →
326Random Point in Non-overlapping RectanglesMedium
ArrayMathBinary Search
Solve →
327Range Frequency QueriesMedium
ArrayHash TableBinary Search
Solve →
328Range Sum of BSTEasy
TreeDepth-First SearchBinary Search Tree
Solve →
329Range Sum of Sorted Subarray SumsMedium
ArrayTwo PointersBinary Search
Solve →
330Reach a NumberMedium
MathBinary Search
Solve →
331Recover Binary Search TreeMedium
TreeDepth-First SearchBinary Search Tree
Solve →
332Remove Duplicate LettersMedium
StringStackGreedy
Solve →
333Remove K DigitsMedium
StringStackGreedy
Solve →
334Remove Nodes From Linked ListMedium
Linked ListStackRecursion
Solve →
335Reverse PairsHard
ArrayBinary SearchDivide and Conquer
Solve →
336Russian Doll EnvelopesHard
ArrayBinary SearchDynamic Programming
Solve →
337Search a 2D Matrix IIMedium
ArrayBinary SearchDivide and Conquer
Solve →
338Search a 2D MatrixMedium
ArrayBinary SearchMatrix
Solve →
339Search in a Binary Search TreeEasy
TreeBinary Search TreeBinary Tree
Solve →
340Search in a Sorted Array of Unknown SizeMedium
ArrayBinary SearchInteractive
Solve →
341Search in Rotated Sorted Array IIMedium
ArrayBinary Search
Solve →
342Search in Rotated Sorted ArrayMedium
ArrayBinary Search
Solve →
343Search Insert PositionEasy
ArrayBinary Search
Solve →
344Search Suggestions SystemMedium
ArrayStringBinary Search
Solve →
345Sell Diminishing-Valued Colored BallsMedium
ArrayMathBinary Search
Solve →
346Separate Squares IMedium
ArrayBinary Search
Solve →
347Separate Squares IIHard
ArrayBinary SearchSegment Tree
Solve →
348Serialize and Deserialize BSTMedium
StringTreeDepth-First Search
Solve →
349Shortest Distance to Target ColorMedium
ArrayBinary SearchDynamic Programming
Solve →
350Shortest Matching SubstringHard
Two PointersStringBinary Search
Solve →
351Shortest Subarray to be Removed to Make Array SortedMedium
ArrayTwo PointersBinary Search
Solve →
352Shortest Subarray with Sum at Least KHard
ArrayBinary SearchQueue
Solve →
353Shortest Unsorted Continuous SubarrayMedium
ArrayTwo PointersStack
Solve →
354Shortest Way to Form StringMedium
Two PointersStringBinary Search
Solve →
355Single Element in a Sorted ArrayMedium
ArrayBinary Search
Solve →
356Sliding Window MaximumHard
ArrayQueueSliding Window
Solve →
357Smallest Good BaseHard
MathBinary Search
Solve →
358Smallest K-Length Subsequence With Occurrences of a LetterHard
StringStackGreedy
Solve →
359Smallest Rectangle Enclosing Black PixelsHard
ArrayBinary SearchDepth-First Search
Solve →
360Smallest Subarrays With Maximum Bitwise ORMedium
ArrayBinary SearchBit Manipulation
Solve →
361Smallest Subsequence of Distinct CharactersMedium
StringStackGreedy
Solve →
362Smallest Substring With Identical Characters IHard
ArrayBinary SearchEnumeration
Solve →
363Smallest Substring With Identical Characters IIHard
StringBinary Search
Solve →
364Snapshot ArrayMedium
ArrayHash TableBinary Search
Solve →
365Sorted GCD Pair QueriesHard
ArrayHash TableMath
Solve →
366Sorting Three GroupsMedium
ArrayBinary SearchDynamic Programming
Solve →
367Special Array IIMedium
ArrayBinary SearchPrefix Sum
Solve →
368Special Array With X Elements Greater Than or Equal XEasy
ArrayBinary SearchSorting
Solve →
369Split Array Largest SumHard
ArrayBinary SearchDynamic Programming
Solve →
370Split BSTMedium
TreeBinary Search TreeRecursion
Solve →
371Sqrt(x)Easy
MathBinary Search
Solve →
372Steps to Make Array Non-decreasingMedium
ArrayLinked ListDynamic Programming
Solve →
373Subarray Product Less Than KMedium
ArrayBinary SearchSliding Window
Solve →
374Subarray With Elements Greater Than Varying ThresholdHard
ArrayStackUnion-Find
Solve →
375Subsequence With the Minimum ScoreHard
Two PointersStringBinary Search
Solve →
376Successful Pairs of Spells and PotionsMedium
ArrayTwo PointersBinary Search
Solve →
377Sum of Mutated Array Closest to TargetMedium
ArrayBinary SearchSorting
Solve →
378Sum of Scores of Built StringsHard
StringBinary SearchRolling Hash
Solve →
379Sum of Square NumbersMedium
MathTwo PointersBinary Search
Solve →
380Sum of Subarray MinimumsMedium
ArrayDynamic ProgrammingStack
Solve →
381Sum of Subarray RangesMedium
ArrayStackMonotonic Stack
Solve →
382Sum of Total Strength of WizardsHard
ArrayStackMonotonic Stack
Solve →
383Super Egg DropHard
MathBinary SearchDynamic Programming
Solve →
384Swim in Rising WaterHard
ArrayBinary SearchDepth-First Search
Solve →
385The K Weakest Rows in a MatrixEasy
ArrayBinary SearchSorting
Solve →
386The Latest Time to Catch a BusMedium
ArrayTwo PointersBinary Search
Solve →
387The Number of Weak Characters in the GameMedium
ArrayStackGreedy
Solve →
388Threshold Majority QueriesHard
ArrayHash TableBinary Search
Solve →
389Time Based Key-Value StoreMedium
Hash TableStringBinary Search
Solve →
390Trapping Rain WaterHard
ArrayTwo PointersDynamic Programming
Solve →
391Trim a Binary Search TreeMedium
TreeDepth-First SearchBinary Search Tree
Solve →
392Tweet Counts Per FrequencyMedium
Hash TableStringBinary Search
Solve →
393Two Best Non-Overlapping EventsMedium
ArrayBinary SearchDynamic Programming
Solve →
394Two Sum BSTsMedium
Two PointersBinary SearchStack
Solve →
395Two Sum II - Input Array Is SortedMedium
ArrayTwo PointersBinary Search
Solve →
396Two Sum IV - Input is a BSTEasy
Hash TableTwo PointersTree
Solve →
397Two Sum Less Than KEasy
ArrayTwo PointersBinary Search
Solve →
398Ugly Number IIIMedium
MathBinary SearchCombinatorics
Solve →
399Unique Binary Search Trees IIMedium
Dynamic ProgrammingBacktrackingTree
Solve →
400Unique Binary Search TreesMedium
MathDynamic ProgrammingTree
Solve →
401Valid Perfect SquareEasy
MathBinary Search
Solve →
402Valid Triangle NumberMedium
ArrayTwo PointersBinary Search
Solve →
403Validate Binary Search TreeMedium
TreeDepth-First SearchBinary Search Tree
Solve →
404Verify Preorder Sequence in Binary Search TreeMedium
ArrayStackTree
Solve →
405Ways to Split Array Into Three SubarraysMedium
ArrayTwo PointersBinary Search
Solve →
406Zero Array Transformation IIMedium
ArrayBinary SearchPrefix Sum
Solve →