Описание:
Коко любит есть бананы. Есть N сваи бананов, у меня есть сваи [I] бананы. Охранники пошли и вернутся через часы.
Коко может решить ее скорость еды бананов в час k. Каждый час она выбирает немного кучу бананов и ест k бананов из этой кучи. Если ворс имеет меньше K бананов, она ест их вместо этого и не будет есть больше бананов в течение этого часа.
Коко любит есть медленно, но все же хочет закончить все бананы перед возвращением охранников.
Верните минимальное целое число k такое, что она может съесть все бананы в часах часа.
Решение:
Сложность времени: O (NLOG (N)) Космическая сложность: O (1)
// Binary Search approach
var minEatingSpeed = function(piles, h) {
// Check if koko can eat all the piles in h hours at his speed
function checkCondition(speed) {
let time = 0
for(const pile of piles) {
time += Math.ceil(pile / speed);
}
return time <= h
}
// Binary search
let left = 1, right = Math.max(...piles)
while(left < right) {
const mid = left + Math.floor((right-left)/2)
if(checkCondition(mid)) {
right = mid
} else {
left = mid+1
}
}
return left
};
Оригинал: “https://dev.to/cod3pineapple/leetcode-875-koko-eating-bananas-javascript-solution-4o2”