每日一题,狒狒吃香蕉

2023-12-13 17:43:14

狒狒喜欢吃香蕉。这里有?N?堆香蕉,第?i?堆中有?piles[i]?根香蕉。警卫已经离开了,将在?H?小时后回来。
狒狒可以决定她吃香蕉的速度?K?(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉?K?根。如果这堆香蕉少于?K?根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉,下一个小时才会开始吃另一堆的香蕉。??
狒狒喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。
返回她可以在?H?小时内吃掉所有香蕉的最小速度?K(K?为整数)。
?


示例

var minEating = function (piles, h) {
  let low = 1;
  let height = 0;
  for (const pile of piles) {
    height = Math.max(height, pile);
  }

  let k = height;

  while (low < height) {
    const speed = Math.floor((height - low) / 2) + low;
    const time = getTime(piles, speed);
    if (time <= h) {
      k = speed;
      height = speed;
    } else {
      low = speed + 1;
    }
  }
  return k;
}

const getTime = (piles, speed) => {
  let time = 0;
  for (const pile of piles) {
    const curTime = Math.floor((pile + speed - 1) / speed);
    time += curTime;
  }
  return time;
}

文章来源:https://blog.csdn.net/DHLSP15/article/details/134975171
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。