2024-02-26|閱讀時間 ‧ 約 0 分鐘

二分搜尋: Koko吃香蕉 Koko Eating Bananas_Leetcode #875 精選75題

題目敘述

題目會給定一個輸入陣列piles,代表每堆香蕉所擁有的香蕉數量,和
一個時間上限h小時。

Koko喜歡吃香蕉,每小時可以吃k個香蕉,請問k值最少需要多少,才能讓Koko在h小時內吃完所有的香蕉


題目的原文敘述


測試範例

Example 1:

Input: piles = [3,6,7,11], h = 8
Output: 4

Example 2:

Input: piles = [30,11,23,4,20], h = 5
Output: 30

Example 3:

Input: piles = [30,11,23,4,20], h = 6
Output: 23

約束條件

Constraints:

  • 1 <= piles.length <= 10^4

香蕉最少有一堆,最多有一萬堆。

  • piles.length <= h <= 10^9

時間上限h介於香蕉總堆數~十億之間。

  • 1 <= piles[i] <= 10^9

每堆香蕉最少含有一根香蕉,最多有十億根香蕉。


演算法 二分搜尋法

從題意上推敲,可以知道,進食的速率和完成時間為負相關

吃的越快,所需完食時間越少。

吃的越慢,所需完食時間越多。


輸入輸出曲線具有已排序(逆序)的性質,因此可以用二分搜尋法Binary search去找出能剛好在h小時內完食的進食速率k的最小值

付費訂閱
分享至
成為作者繼續創作的動力吧!
Leetcode 國際版精選75題 上機考面試題 詳解 題目與題解 熱門考點 目錄 (持續更新中) https://tinyurl.com/mu7c2c8r 裡面包含: 1. 內涵題意解析 2. 演算法建造 3. python解題程式碼 4. 複雜度分析 5. 關鍵知識點提示 6. 獨門心法、實用的演算法框架與統整
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.