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