二分法解決最大值最小化系列問題
阿新 • • 發佈:2021-11-03
吃香蕉
方法:二分查詢
思路分析:
根據題意可以知道:珂珂吃香蕉的速度越小,耗時越多。反之,速度越大,耗時越少,這是題目的 單調性;
我們要找的是速度。因為題目限制了珂珂一個小時之內只能選擇一堆香蕉吃,因此速度最大值就是這幾堆香蕉中,數量最多的那一堆。速度的最小值是 11,其實還可以再分析一下下界是多少,由於二分搜尋的時間複雜度很低,嚴格的分析不是很有必要;
還是因為珂珂一個小時之內只能選擇一堆香蕉吃,因此:每堆香蕉吃完的耗時 = 這堆香蕉的數量 / 珂珂一小時吃香蕉的數量。根據題意,這裡的 / 在不能整除的時候,需要 上取整。
注意:當「二分查詢」演算法猜測的速度恰好使得珂珂在規定的時間內吃完香蕉的時候,還應該去嘗試更小的速度是不是還可以保證在規定的時間內吃完香蕉。
這是因為題目問的是「最小速度 」。