Finish problem 0875-koko-eating-bananas
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
def hours_needed(piles: list[int], k: int) -> int:
|
||||||
|
return sum(-(-p // k) for p in piles)
|
||||||
|
|
||||||
|
|
||||||
|
class Solution:
|
||||||
|
def minEatingSpeed(self, piles: list[int], h: int) -> int:
|
||||||
|
lo, hi = 1, max(piles)
|
||||||
|
while lo < hi:
|
||||||
|
k = (lo + hi) // 2
|
||||||
|
if hours_needed(piles, k) <= h:
|
||||||
|
hi = k
|
||||||
|
else:
|
||||||
|
lo = k + 1
|
||||||
|
return lo
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
import pytest
|
||||||
|
from solution import Solution
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"piles, h, expected",
|
||||||
|
[
|
||||||
|
([3, 6, 7, 11], 8, 4),
|
||||||
|
([30, 11, 23, 4, 20], 5, 30),
|
||||||
|
([30, 11, 23, 4, 20], 6, 23),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_min_eating_speed(piles, h, expected):
|
||||||
|
assert Solution().minEatingSpeed(piles, h) == expected
|
||||||
Reference in New Issue
Block a user