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

875. 爱吃香蕉的珂珂

时间:2024-07-21 11:30:00浏览次数:13  
标签:香蕉 吃掉 piles int 875 mid 小时

传送锚点:

. - 力扣(LeetCode)

珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。

珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 k 根。如果这堆香蕉少于 k 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。

珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。

返回她可以在 h 小时内吃掉所有香蕉的最小速度 kk 为整数)。

示例 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

提示:

  • 1 <= piles.length <= 104

  • piles.length <= h <= 109

  • 1 <= piles[i] <= 109

思路

最后,确定二分的范围:

  • k=0 必然无法吃掉所有香蕉,作为(开区间的)左边界。

  • k=max(piles) 意味着 1 小时一定能吃完一堆香蕉,必然可以在 h 小时内吃掉所有香蕉(注意题目保证 n≤h),作为(开区间的)右边界。

Code 1

class Solution:
    def check(self, piles: List[int], h: int, k: int) -> bool:
        sum = 0 #记录吃完所有香蕉所花时间
        for j, x in enumerate(piles):
            if x % k == 0:
                sum += x // k
            else:
                sum += x // k + 1
        return sum > h
    def minEatingSpeed(self, piles: List[int], h: int) -> int:
        piles.sort()
        n = len(piles)
        l, r = 0, piles[-1]

        while l + 1 < r:
             # 循环不变量:
            # left 的回答一定不能在h小时内吃完
            # right 的回答一定不能在h小时内吃完
            mid = (l + r) // 2
            if self.check(piles, h, mid): 
                l = mid
            else:
                r = mid

         # 根据循环不变量,left现在是能在h小时吃完的最小数
        return r

标签:香蕉,吃掉,piles,int,875,mid,小时
From: https://www.cnblogs.com/6Luffy6/p/18314282

相关文章

  • springboot智慧医疗数据共享和个性化推荐系统-计算机毕业设计源码05875
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2 智慧医疗数据共享和个性化推荐系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程2.2.3数据删除流程2.3 系统功能分析2.3.1功能性分析2.4 系......
  • 目标检测应用场景—数据集【NO.5】水果种类成熟度 番茄 香蕉 草莓
    目标检测应用场景—数据集【NO.5】水果种类成熟度番茄香蕉草莓在前面:数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集,方便大家下载数据集今天分享一个非常好的非常小众的研究方向,有应用创新,可有利于发小论文和大论文,有......
  • ubuntu系统(香蕉派)设置开机自启动
    以下介绍两种设置开机自启动的方法,分别对应界面中配置和在命令中配置方法1:编辑开启自启动命令sudonano/etc/rc.local#在该文件中添加启动执行命令,需要在exit0之前。添加命令后的&用于设置其支持后台运行。/bin/bash/path/run.sh&#如果没有正常执行权限,更爱rc.loca......
  • 生活-食品-水果-香蕉如何保存:香蕉能不能放冰箱?表皮变黑了还能不能吃?
    香蕉能不能放冰箱?表皮变黑了还能不能吃?云无心@美国普度大学农业与生物系食品工程专业博士香蕉如何保存?实用的香蕉保存指南最方便的方法:每次少买,及时吃完。需要延缓成熟,挂到通风的地方并远离其他水果。需要加快成熟,和芒果、苹果、梨等水果密封放在一起。如果已经成熟(即香......
  • 【LeetCode 875】爱吃香蕉的珂珂
    题目描述原题链接:LeetCode.875爱吃香蕉的珂珂解题思路如果当前堆剩余香蕉数量小于每小时吃的数量,吃完当前堆就会休息不会去吃下一堆的香蕉,所以吃完一堆所需时间就是堆的香蕉数量除以速度的向上取整值:\(\lceil{piles[i]/speed}\rceil\);首先确定答案所处的范围,速度最小......
  • CF875F Royal Questions
    传送门\(a[i]\)和\(b[i]\)之间连一条\(w[i]\)的边,相当于把公主当作限制条件。考虑选当前这条边是否合法:1.若选了当前这条边后变成了一棵树,那即为\(x\)个点和\(x-1\)个边,可以任意舍去一个点(因为可以有王子不结婚),所以一定合法。2.若选了当前这条边后,变成了一棵基环树,即......
  • P8754 [蓝桥杯 2021 省 AB2] 完全平方数
    原题链接题解分解n的质因子,如果为奇数就补一个由于大于\(\sqrt{n}\)的质因子最多不超过一个,所以我们筛小于\(1e6\)的质数code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;vector<int>prime;vector<int>minfac(1e6+3,0);intmain(){f......
  • CF875B Sorting the Coins 题解
    题面。算是比较简单的题目了,自己多手出几个样例就可以发现规律了。强烈建议多读几遍题目!!!!思路设0表示硬币朝上,1表示硬币朝下,则第\(0\)次与第\(n\)操作一定输出\(1\)。因为没有可以操作的对象,前者是由于全部硬币朝上,后者是由于全部硬币朝下,即使没有操作也要遍历一遍。注......
  • REXROTH力士乐R900608754 VT-DFPE-A-2X/G24K0/2A0F/V
    REXROTH力士乐R900608754VT-DFPE-A-2X/G24K0/2A0F/V力士乐(Rexroth)VT-HACD-1-1X/V0/1-P-0是一款液压阀,属于力士乐Hydac系列的过滤器和配件产品。这款产品通常用于过滤和调节液压系统中的流体,以保护系统免受污染和磨损,同时确保液压系统的稳定运行。以下是该产品的一些关键特性......
  • 【目标检测数据集】香蕉数据集2240张VOC+YOLO格式
    香蕉,是一种广受欢迎的热带水果,以其独特的香甜口感和丰富的营养价值而备受青睐。香蕉外观弯曲,呈长条形,果皮光滑,呈现出鲜亮的黄色,令人垂涎欲滴。在口感上,香蕉肉质细腻,口感绵软,甜而不腻,深受各个年龄段人群的喜爱。无论是作为早餐的一部分,还是作为零食、甜品,香蕉都是绝佳的选择。......