首页 > 其他分享 >爱吃香蕉的珂珂

爱吃香蕉的珂珂

时间:2024-02-01 22:56:34浏览次数:34  
标签:香蕉 吃掉 piles 示例 int 速度

875 Koko Eating Bananas

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

示例 1:
输入: piles = [3,6,7,11], H = 8
输出: 4
示例 2:
输入: piles = [30,11,23,4,20], H = 5
输出: 30
示例 3:
输入: piles = [30,11,23,4,20], H = 6
输出: 23
// 思路:珂珂吃香蕉的最快速度就是 N 个堆中香蕉数目最多的堆中的数目。
// 可以在 H 小时内吃掉所有香蕉的最小速度 K。就是求他在警卫刚好回来的时候,刚好吃完所有的香蕉。
class Solution {
     public int minEatingSpeed(int[] piles, int H) {
        if (piles.length > H ) {
            return -1;
        }
        //maxSpeed KOKO吃香蕉的最快速度
        int maxSpeed=piles[0];
        for(int i=0;i<piles.length;i++){
            maxSpeed=Math.max(maxSpeed,piles[i]);
        }
        //KOKO吃香蕉的速度在[1,maxSpeed]之间
        int l=1;
        int h=maxSpeed;
        while(l<=h){
            int mid=l+(h-l)/2;
            int hours=hours(piles,mid);
            if(hours==H){
                return mid;
            }else if(hours<H){
                //hours<H说明吃的快了,速度要降下来
                h=mid-1;
            }else{
                //hours>H说明吃的慢了,速度要快起来
                l=mid+1;
            }
        }
        return l;
    }

    //以spped速度吃香蕉所花费的时间
    private int hours(int[] piles,int speed){
        int time=0;
        for(int pile:piles){
            time += Math.ceil(pile*1.0/speed);
        }
        return time;
    }
}

参考:

标签:香蕉,吃掉,piles,示例,int,速度
From: https://www.cnblogs.com/i9code/p/18002299

相关文章

  • 案例9-根据总人数和香蕉总数分香蕉
    题目详细说明:班上总共有17名学生,老师总共拿了65根香蕉分给班上的学生学生,问每人可以分到多少根香蕉?将多余的香蕉退还给老师,需要退还多少根?请使用C语言来计算并输出结果。示例代码如下:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>voidmain(){ inttotal=65......
  • 力扣875. 爱吃香蕉的珂珂(二分查找)
     珂珂喜欢吃香蕉。这里有n堆香蕉,第i堆中有piles[i]根香蕉。警卫已经离开了,将在h小时后回来。珂珂可以决定她吃香蕉的速度k(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉k根。如果这堆香蕉少于k根她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂......
  • 力扣---875. 爱吃香蕉的珂珂
    珂珂喜欢吃香蕉。这里有n堆香蕉,第i堆中有 piles[i] 根香蕉。警卫已经离开了,将在h小时后回来。珂珂可以决定她吃香蕉的速度k(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉k根。如果这堆香蕉少于k根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。 ......
  • 猴子摘香蕉问题
    简介一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,香蕉位置在B,箱子位置为C),如何行动可摘取到香蕉?猴子摘香蕉问题PEAS性能环境......
  • 香蕉的故事
    你村里的人啊,本来不爱吃香蕉现在你手里有大量的香蕉要卖给他们怎么办?于是你每天去村里吆喝,谁家有香蕉,我要买,刻意制造需求嘛,就叫无中生有第一天,收10块钱一斤第二天,11块钱一斤,第三天,12块钱一斤……每天涨一块钱,一到第五天,就会有人抢在你前面,把十三四块钱一斤的香蕉都买走想......
  • 香蕉派 BPI-Leaf-S3的正确吃法之ESP-IDF的安装
    原文链接:https://qubot.org/2023/03/22/build-a-new-esp-idf-project-for-bananapi-bpi-leaf-s3/作者:[Qubot](https://qubot.org)##前言上一篇文章介绍了ESP-IDF的......
  • 深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)
    我目前在学习百度的深度学习框架----paddlepaddle,在平台上运行出结果是比较简单的,因为有算力的支持,一个模型能很快地训练出来.大家可以在AIStudio上FORK这个项目,下载数......
  • hbuilderx+香蕉云编生成ios证书和上架教程
    现在很多公司都使用uniapp作为底层框架来开发app应用,而uniapp的开发工具hbuilderx云打包的时候,需要证书和证书profile文件。假如是ios应用,则还需要上架到appstore.假如是......
  • 青龙面板-香蕉脚本教程
    青龙面板-香蕉脚本教程声明本脚本仅帮你获得金币,至于你如何利用金币,想拿去怎么使用,那是您的事情。与本人无关!没有任何关联!APP后期有任何问题也与本人无关喔!自行处理!这个......
  • YOLOv5识别图像内苹果和香蕉
    YOLOv5为目标检测带来了极大的方便。通过简单地训练YOLOv5,即可以实现一个速度快、性能高的目标检测系统。下面介绍如何从头开始构造一个简单的目标检测系统,用来识别图像内的......