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

思路:
使用二分查找法 找出最小速度K 查找边界是 最小吃香蕉速度是1 ,即l=1 最大吃香蕉速度是 这堆香蕉中数量最大的那堆的数字 即r = max(piles).

import java.util.Arrays;public class Solution {public int minEatingSpeed(int[] piles, int h) {// 最小吃香蕉速度是每小时吃1个  最大速度是每小时把数量最大的那堆吃完int l = 1, r = Arrays.stream(piles).max().getAsInt();// 设定边界条件 当 l == r的时候已经找到了解while (l < r) {// 取中间int mid = l + (r-l)/2;// 判断如果以当前速度吃完所有香蕉的时间 <= 规定时间 则向左找更小的速度// 之所以是 <= 是因为当前的速度有可能就是最小的速度if (eatingTimes(piles, mid) <= h) {r = mid;} else {// 以当前速度吃完所有香蕉的时间 大于规定时间的时候 则需要更快的速度吃完 所以要向右找// 这里一开始我也有些糊涂 一定要明确一点就是  这里边维护的数字是 速度 而不是 时间l = mid + 1;}}return l;}// 输出以当前速度吃完所有香蕉需要的时间private int eatingTimes(int[] piles, int speed) {int res = 0;for(int pile : piles) {// 先算能不能恰好吃完 吃不完的需要多花一个小时把剩的香蕉吃了res += pile / speed + ((pile % speed > 0) ? 1 : 0);}return res;}}

LeetCode875 珂珂吃香蕉相关推荐

  1. [Swift]LeetCode875. 爱吃香蕉的珂珂 | Koko Eating Bananas

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  2. 875. 爱吃香蕉的珂珂(二分)

    珂珂喜欢吃香蕉.这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉.警卫已经离开了,将在 H 小时后回来. 珂珂可以决定她吃香蕉的速度 K (单位:根/小时).每个小时,她将会选择一堆香蕉, ...

  3. LeetCode 875. 爱吃香蕉的珂珂(二分查找)

    1. 题目 珂珂喜欢吃香蕉.这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉.警卫已经离开了,将在 H 小时后回来. 珂珂可以决定她吃香蕉的速度 K (单位:根/小时).每个小时,她将会选 ...

  4. Leedcode 875. 爱吃香蕉的珂珂

    珂珂喜欢吃香蕉.这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉.警卫已经离开了,将在 h 小时后回来. 珂珂可以决定她吃香蕉的速度 k (单位:根/小时).每个小时,她将会选择一堆香蕉, ...

  5. Leetcode 875:爱吃香蕉的珂珂 Koko Eating Bananas

    中文描述: 珂珂喜欢吃香蕉.这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉.警卫已经离开了,将在 H 小时后回来. 珂珂可以决定她吃香蕉的速度 K (单位:根/小时).每个小时,她将会选 ...

  6. LeetCode 875.爱吃香蕉的珂珂

    1. 题目 原题链接 https://leetcode-cn.com/problems/koko-eating-bananas/ 题目描述 珂珂喜欢吃香蕉.这里有 N 堆香蕉,第 i 堆中有 pile ...

  7. LeetCode-Python-875. 爱吃香蕉的珂珂

    珂珂喜欢吃香蕉.这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉.警卫已经离开了,将在 H 小时后回来. 珂珂可以决定她吃香蕉的速度 K (单位:根/小时).每个小时,她将会选择一堆香蕉, ...

  8. Leetcode-“二分查找”-爱吃香蕉的珂珂

    Leetcode-"二分查找"-爱吃香蕉的珂珂 描述:珂珂喜欢吃香蕉.这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉.警卫已经离开了,将在 H 小时后回来. 珂珂可以 ...

  9. Python描述 LeetCode 875. 爱吃香蕉的珂珂

    Python描述 LeetCode 875. 爱吃香蕉的珂珂   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端开 ...

最新文章

  1. Python压缩目录文件夹,解压目录文件夹及耗时效率统计
  2. 同时测试多个服务是否存活的脚本[shell和perl]
  3. python语言是什么时候诞生的_python诞生于什么时候
  4. 教程:一起学习Hystrix--服务(依赖)失败场景的表象
  5. Androidclient与服务端交互之登陆演示样例
  6. mplayer-php,mplayer+smplayer 前后端播放器安装
  7. JVM&NIO&HashMap简单问
  8. Python文摘:Mixin
  9. CentOS7.6下设置mysql服务开机启动
  10. JSK-391 公约公倍【入门】
  11. netcore里使用jwt做登陆授权
  12. 多子群的共生非均匀高斯变异樽海鞘群算法-附代码
  13. RuntimeError: latex was not able to process the following string: b‘lp‘
  14. http://www.jb51.net/article/84149.htm
  15. javascript实现锁定网页、密码解锁效果(屏幕保护效果)
  16. 电信行业用户流失预测——你的用户会流失吗?
  17. virtuoso小白入门
  18. 【深度学习】云服务器推荐及教程
  19. VCN 在windows和linux之间 复制粘贴
  20. CSS系列之详解overflow

热门文章

  1. 路漫漫其修远兮,吾将上下求索
  2. python中的a[::1]类型
  3. 自己的Linq学习心得
  4. 在“云基础设施即服务的魔力象限”报告中,亚马逊云科技连续三年被评为领导者
  5. CATIA V5塑胶模具设计全套视频教程
  6. DSGdata Inc.公司简介
  7. 通达信交易软件接口的标记是什么?
  8. n维空间的欧氏距离公式_欧氏距离(Euclidean Distance)
  9. 从MTK的scat文件谈ROM和RAM的分配,管理和问题解决
  10. JS 案例 飘浮广告