==πŸ‘‰ Find the 14 problems set below==

Binary Search on Answer β€” Interview Study Order

🟒 Group 1 β€” Core / Must Master

These establish the basic candidate β†’ feasible() β†’ first True pattern.

#ProblemLCPatternCompany tags*Links
1Koko Eating Bananas875Minimum rate β†’ count timeAmazon, Googlekoko-eating-bananas
2Capacity to Ship Packages Within D Days1011Minimum capacity β†’ greedy groupingAmazon, Metacapacity-to-ship-packages
3Find the Smallest Divisor Given a Threshold1283Minimum divisor β†’ countingAmazon, Applefind-the-smallest-divisor-given-a-threshold
4Minimum Speed to Arrive on Time1870Minimum speed β†’ time calculationGoogle, Amazonkoko-eating-bananas

What you should learn from this group:

X = candidate answer
        ↓
Can X satisfy the constraint?
        ↓
FFFFTTTT
        ↓
find first True

After these, you should be able to write the basic template without thinking.


🟑 Group 2 β€” Minimize the Maximum

This is probably the most important family after Group 1.

The common transformation is:

β€œMinimize the maximum ___”

becomes:

β€œAssume the maximum is X. Can I make the entire problem work?”

#ProblemLCValidatorCompany tags*Links
5Split Array Largest Sum410Greedy partitionGoogle, Meta, Amazonsplit-array-largest-sum
6Minimized Maximum of Products Distributed to Any Store2064Greedy allocationAmazon, Microsoftminimized-maximum-of-products-distributed-to-any-store
7Minimum Limit of Balls in a Bag1760Count required splitsGoogle, Amazonminimum-limit-of-balls-in-a-bag
8Book Allocationβ€”Greedy partitionAmazon, Microsoftsplit-array-largest-sum
9Painter’s Partitionβ€”Greedy partitionAmazon, Microsoftsplit-array-largest-sum

Important:

You don’t need to separately β€œlearn” Book Allocation and Painter’s Partition after LC 410.

They are essentially the same family:

candidate maximum load
        ↓
greedily create groups
        ↓
groups <= K ?
        ↓
first feasible

So I’d study Split Array Largest Sum deeply, then use the others as reinforcement.


πŸ”΅ Group 3 β€” Maximize the Minimum

This is the other major pattern you absolutely need.

The wording usually looks like:

Maximize the minimum distance/value.

You instead ask:

Can I achieve a minimum of at least X?

Now the predicate is:

TTTTFFFF

and you find the last True.

#ProblemLCValidatorCompany tags*Links
10Magnetic Force Between Two Balls1552Greedy placementAmazon, Meta, Googlemagnetic-force-between-two-balls-or-aggressive-cows
11Aggressive Cowsβ€”Same greedy placementAmazon, Googlemagnetic-force-between-two-balls-or-aggressive-cows
12Divide Chocolate1231Greedy partitionGoogledivide-chocolate_lc-1231

Again, 1552 is the one I’d learn properly.

The reusable pattern:

candidate minimum distance = X
             ↓
greedily place objects
             ↓
can place >= K?
             ↓
TTTTFFFF
             ↓
last True

🟣 Group 4 β€” Binary Search + Counting

This is where the pattern becomes more interesting.

Instead of a straightforward greedy validator, you count how many things satisfy a property for candidate X.

#ProblemLCValidatorCompany tags*Links
13K-th Smallest Pair Distance719Two pointers + countingGoogle, Amazonkth-smallest-pair-distance
14K-th Smallest Element in a Sorted Matrix378Count <= XAmazon, Googlekth-smallest-element-in-a-sorted-matrix
15K-th Smallest Number in Multiplication Table668Mathematical countingGooglekth-smallest-number-in-multiplication-table
16Maximum Candies Allocated to K Children2226Count piecesGoogle, Amazonmaximum-candies-allocated-to-k-children-(lc-2226)

This teaches a very useful abstraction:

candidate X
    ↓
count(X)
    ↓
is count(X) >= K ?
    ↓
predicate
    ↓
binary search

Priority

For your interview, I’d do:

719 β†’ 2226 β†’ 378 β†’ 668

You don’t necessarily need all four if time becomes tight.


πŸ”΄ Group 5 β€” Advanced / Different Validator

Do these only after the previous groups feel natural.

ProblemLCWhy it’s differentCompany tags*Links
Minimize Max Distance to Gas Station774Continuous / floating-point BSGoogleminimize-max-distance-to-gas-station
Swim in Rising Water778Binary search + graph feasibilityGoogle, Meta
Ugly Number III1201Binary search + inclusion-exclusionGoogle
K-th Smallest Prime Fraction786More specialized predicateGoogle

Swim in Rising Water

I would not prioritize this as a Binary Search-on-Answer problem.

It is valuable, but the important lesson is really:

Binary Search
+
BFS/DFS feasibility

and the problem has other standard solutions, particularly Dijkstra.

So don’t let it take time away from the core families.


🎯 Your Actual Study Roadmap

If your interview is coming fast, I’d reduce everything to this:

Phase 1 β€” Basic predicate

1. Koko Eating Bananas
2. Capacity to Ship Packages
3. Smallest Divisor Given Threshold

↓

Phase 2 β€” Minimize Maximum

4. Split Array Largest Sum / Book allocation/ painter's partition
5. Minimized Maximum of Products
6. Minimum Limit of Balls in a Bag
 

↓

Phase 3 β€” Maximize Minimum

7. Magnetic Force Between Two Balls / aggressive cows
8. Divide Chocolate

↓

Phase 4 β€” Counting Predicate

9. K-th Smallest Pair Distance
10. Maximum Candies Allocated to K Children
11. K-th Smallest in Sorted Matrix

↓

Phase 5 β€” Advanced

12. Minimize Max Distance to Gas Station
13. Ugly Number III

That’s the 13-problem core set I’d use.


The patterns you should be able to recognize after these

PatternRepresentative problem
Minimum rateKoko
Minimum capacityShip Packages
Minimum threshold/divisorSmallest Divisor
Minimize maximum partitionSplit Array
Minimize maximum allocationMinimized Maximum
Minimize maximum after splittingBalls in a Bag
Maximize minimum distanceMagnetic Force
Maximize minimum valueDivide Chocolate
Binary search + pair countingK-th Pair Distance
Binary search + value countingK-th Smallest Matrix
Binary search + mathematical countingMultiplication Table
Binary search + graph feasibilitySwim in Rising Water
Continuous answer searchGas Station

One thing I’d change from the Gemini list

For your limited time, learn the pattern, then solve 1–2 variations rather than collecting dozens of nearly identical problems.

*Company tags are approximate historical interview/problem-bank tags, not guarantees of what a company will ask.

Local Graph View

Start typing to search
Try: two sum or #Arrays or #Amazon