当前位置: 首页 > news >正文

875. 爱吃香蕉的珂珂

题目描述

珂珂喜欢吃香蕉。这里有 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

解答

class Solution {
public:int minEatingSpeed(vector<int>& piles, int h) {// 二分查找去尝试能够吃完香蕉的最小速度// 由题意知,吃香蕉速度越小耗时越多,反之速度越大耗时越小,即单调性// 吃每堆香蕉的耗时 = 这堆香蕉的数量 / 一小时吃香蕉的数量,不能整除要向上取整int maxVal = 1;for(int &num : piles){maxVal = max(maxVal, num); // 求香蕉数量最多的堆}// 速度最小的时候,耗时最长// 速度最大的时候,就是最大堆香蕉的数量,保证每堆都在1h内吃完int left = 1, right = maxVal;while(left < right){int mid = left + (right - left) / 2;if(calculateSum(piles, mid) > h) // 速度太慢则把左边界右移{left = mid + 1;}else // 速度太快则把右边界左移{right = mid;}}return left; // 最后能到一个刚刚好的速度}
private:// 计算以 speed 的速度要吃的时间int calculateSum(vector<int>& piles, int speed){int sum = 0;for(int &num : piles){sum += (num % speed == 0 ? num / speed : num / speed + 1);}return sum;}
};
http://www.lryc.cn/news/215020.html

相关文章:

  • 台灯太亮会导致近视吗?精选高品质的台灯
  • Scala函数和闭包
  • LeetCode----1935. 可以输入的最大单词数
  • 学习笔记三十:K8S配置管理中心Secret实现加密数据配置管理
  • 关于uviewui修改主题及在uniapp中的应用
  • 使用QEMU模拟启动uboot
  • 学习数据结构和算法之前,你需要知道什么?
  • 16. 机器学习 - 决策树
  • 将多余的内存,当作虚拟内存。修改edge缓存路径到虚拟内存中
  • 【从0到1设计一个网关】过滤器链的实现---实现负载均衡过滤器
  • 科技云报道:打造生成式AI应用,什么才是关键?
  • 可回馈式电子负载的工作原理
  • 基于Vite使用VitePress搭建静态站点博客
  • 湖南互联网医院-让患者随时随地接受医疗服务
  • 【建议收藏】免费体验的AI论文写作网站-「智元兔 AI」
  • CUDA编程
  • gorilla/websocket的chat示例代码简单分析
  • 地图坐标展示工具folium
  • Ruby 之方法委托
  • [论文笔记]RetroMAE
  • 服务熔断保护实践--Sentinal
  • 页面淘汰算法模拟实现与比较
  • FPGA实现HDMI转LVDS视频输出,纯verilog代码驱动,提供4套工程源码和技术支持
  • JAVA-easyexcel多sheet页导入
  • Java——比较器(一文搞懂比较器Comparable和Comparator)
  • 企业直播招聘抖音报白如何实现?怎么样才能报白成功?
  • 【考研数学】概率论与数理统计 —— 第七章 | 参数估计(2,参数估计量的评价、正态总体的区间估计)
  • 【设计模式】第10节:结构型模式之“组合模式”
  • 改进YOLOv3!IA-YOLO:恶劣天气下的目标检测
  • Vue路由跳转的几种方式