Earliest Possible Day of Full Bloom
A hard-tier problem at 71% community acceptance, tagged with Array, Greedy, Sorting. Reported in interviews at Visa and 0 others.
Visa asks this problem, and it's deceptively hard despite the 71% acceptance rate. You're given flower bloom times and a growth rate. The trap is thinking greedy is enough. You need to sort correctly, then simulate forward while tracking the minimum day everything blooms. Most candidates miss that the answer isn't just the max bloom day. If you blank on the sequencing logic mid-OA, StealthCoder solves it invisibly in seconds, giving you the working simulation and sort order before the proctor knows you were stuck.
Companies that ask "Earliest Possible Day of Full Bloom"
Earliest Possible Day of Full Bloom is the kind of problem that decides whether you pass. StealthCoder reads the problem on screen and surfaces a working solution in under 2 seconds. Invisible to screen share. The proctor sees nothing. Built because the OA filter rejects engineers who'd pass the on-site. That's a broken filter. This is the workaround.
Get StealthCoderThe trick is recognizing that you must process flowers in a specific order (by bloom time, typically), then simulate day by day tracking which flowers have bloomed by that point. The greedy instinct fails because you can't just pick the flower that blooms last and backsolve. Instead, you need to iterate through candidate days and check whether all flowers can bloom by that day given the growth constraint. Array sorting is the foundation, but the actual work is binary search or linear scan on the day range, verifying feasibility at each step. Most candidates code the sim but miss edge cases in overflow or the exact condition for 'all bloomed.' StealthCoder handles the simulation logic and boundary checks so you don't lose points to off-by-one errors.
Pattern tags
You know the problem.
Make sure you actually pass it.
Earliest Possible Day of Full Bloom recycles across companies for a reason. It's hard-tier, and most candidates blank under the timer. StealthCoder is the hedge: an AI overlay invisible during screen share. It reads the problem and surfaces a working solution in under 2 seconds. Built because the OA filter rejects engineers who'd pass the on-site. That's a broken filter. This is the workaround. Works on HackerRank, CodeSignal, CoderPad, and Karat.
Earliest Possible Day of Full Bloom interview FAQ
Why is this marked hard when the acceptance rate is 71%?+
High acceptance doesn't mean easy. Many solvers get a working sim on the first or second try, but the sorting logic and day-range validation trip up others. Visa's hard rating reflects the conceptual jump from 'find max' to 'verify feasibility at each day.' The problem is hard because the obvious greedy fails.
What's the common mistake in the simulation?+
Candidates often forget to reset or track the minimum day correctly across all flowers, or they simulate every single day from 1 to max-day without pruning. The real trick is that once you sort, you can often binary search the answer space or use a single forward pass with careful bookkeeping.
How does sorting connect to the greedy approach?+
Sorting by bloom time lets you reason about which flowers must finish first. Greedy then says 'process in this order,' but you still need to verify that the slowest flower (by growth) finishes on a valid day. Sorting is a precondition, not the full solution.
Does this problem appear often at other companies?+
Only Visa is reported so far in the data. That doesn't mean it's rare elsewhere, but you should treat it as a Visa-specific prep item unless you see it pop up in your own mock or interview.
What should I test if I code this myself?+
Test edge cases: single flower, all flowers with the same bloom time, a flower that blooms on day 1 vs. day 10 million. Also verify your sim doesn't time out if max-day is huge. Off-by-one errors in the day range are almost guaranteed if you don't unit test early.
Want the actual problem statement? View "Earliest Possible Day of Full Bloom" on LeetCode →