leetcode 875 愛吃香蕉的珂珂

2021-10-08 13:31:30 字數 1233 閱讀 3853

875. 愛吃香蕉的珂珂

珂珂喜歡吃香蕉。這裡有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警衛已經離開了,將在 h 小時後回來。

珂珂喜歡慢慢吃,但仍然想在警衛回來前吃掉所有的香蕉。

返回她可以在 h 小時內吃掉所有香蕉的最小速度 k(k 為整數)。

示例 1:

輸入: piles = [3,6,7,11], h = 8

輸出: 4

示例 2:

輸入: piles = [30,11,23,4,20], h = 5

輸出: 30

示例 3:

輸入: piles = [30,11,23,4,20], h = 6

輸出: 23

1 <= piles.length <= 10^4

piles.length <= h <= 10^9

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

這道題還是使用二分法。

首先找到二分法的上界和下界,可以直到上界就是列表中最大的那個數,下界設定為1。

class

solution

:def

mineatingspeed

(self, piles: list[

int]

, h:

int)

->

int:

left, right =1,

max(piles)+1

while left < right:

mid =

(left + right)//2

cnt =

0for i in

range

(len

(piles)):

#計算需要的小時數

if piles[i]

> mid:

cnt +=

(piles[i]

// mid)

if piles[i]

% mid !=0:

#有餘數不能除盡,增加乙個小時

cnt +=

1else

:#不足乙個小時的量的,增加乙個小時

cnt +=

1if cnt > h:

#時間用的比較多,加大進食量

left = mid +

1else

:#時間用的少,可以減少進食量

right = mid

return left

Leetcode 875 愛吃香蕉的珂珂

珂珂喜歡吃香蕉。這裡有n堆香蕉,第i堆中有piles i 根香蕉。警衛已經離開了,將在h小時後回來。珂珂可以決定她吃香蕉的速度k 單位 根 小時 每個小時,她將會選擇一堆香蕉,從中吃掉k根。如果這堆香蕉少於k根,她將吃掉這堆的所有香蕉,然後這一小時內不會再吃更多的香蕉。珂珂喜歡慢慢吃,但仍然想在警衛...

Leetcode刷題875 愛吃香蕉的珂珂

珂珂喜歡吃香蕉。這裡有 n 堆香蕉,第 i 堆中有 piles i 根香蕉。警衛已經離開了,將在 h 小時後回來。珂珂可以決定她吃香蕉的速度 k 單位 根 小時 每個小時,她將會選擇一堆香蕉,從中吃掉 k 根。如果這堆香蕉少於 k 根,她將吃掉這堆的所有香蕉,然後這一小時內不會再吃更多的香蕉。珂珂喜...

875 愛吃香蕉的珂珂 medium

珂珂喜歡吃香蕉。這裡有 n 堆香蕉,第 i 堆中有 piles i 根香蕉。警衛已經離開了,將在 h 小時後回來。珂珂可以決定她吃香蕉的速度 k 單位 根 小時 每個小時,她將會選擇一堆香蕉,從中吃掉 k 根。如果這堆香蕉少於 k 根,她將吃掉這堆的所有香蕉,然後這一小時內不會再吃更多的香蕉。珂珂喜...