前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Leetcode|二分搜索应用|875. 爱吃香蕉的珂珂

Leetcode|二分搜索应用|875. 爱吃香蕉的珂珂

作者头像
SL_World
发布于 2021-09-18 09:34:41
发布于 2021-09-18 09:34:41
23900
代码可运行
举报
文章被收录于专栏:XX
运行总次数:0
代码可运行

一、暴力穷举

先确定K的范围,然后遍历K从1到maxK,运行超时

二、二分搜索

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
public:
    int minEatingSpeed(vector<int>& piles, int h) {
        int maxK = -1;
        int minK = -1;
        // 1.获取最大K——最大香蕉数
        for (auto& pile : piles)
            if (pile > maxK) maxK = pile;
        // 2.在[1,maxK]中二分搜索查找最小k
        int left = 1;
        int right = maxK;
        while(left <= right) {
            int mid = left + (right - left) / 2;
            int sum = 0;
            for (int i = 0; i < piles.size(); i++) {
                // 3.向上取整累加
                sum += ceil(piles[i] * 1.0 / mid);
                if (sum > h) {               // minK在右侧
                    left = mid + 1;
                    break;
                }
                if (i == piles.size() - 1) {  // minK在当前或左侧
                    minK = mid;
                    right = mid - 1;
                }
            }
        }
        return minK;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode 875. 爱吃香蕉的珂珂(二分查找)
珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。
Michael阿明
2020/07/13
4550
二分搜索只能用来查找元素吗?
最常见的就是教科书上的例子,在有序数组中搜索给定的某个目标值的索引。再推广一点,如果目标值存在重复,修改版的二分查找可以返回目标值的左侧边界索引或者右侧边界索引。
帅地
2019/10/30
8970
二分搜索只能用来查找元素吗?
每日算法系列【LeetCode 875】爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。
godweiyang
2020/03/24
6860
我写了一个套路,助你随心所欲运用二分搜索
读完本文,可以去力扣解决如下题目: 875.爱吃香蕉的珂珂(Medium) 1011.在D天内送达包裹的能力(Medium)
labuladong
2021/09/23
1.1K0
漫画:二分解题模板(第一讲)- 修订版
今天还是小浩算法“365刷题计划”第66天。昨天也是第66天,为什么?因为昨天我的内容忘记标识原创,马上就被人抄袭到了自己的博客,我很不爽!当然,经过投诉,对方已经删文。所以为了防止再次抄袭,我决定重新发布一下昨天的文章。考虑到本文有朋友已经学习过了,所以我在原有的基础上进行了加强,并且答疑了昨天私下有人问我的几个问题,不妨看一看!暂定后续要讲解的几个topic为:二分法(以常考题目为主)、回溯法(大部分是中等以上难度题型)、分治法(以思想掌握为主)、动态规划(以2维DP为主)、其他。希望大家可以长期支持!一起学习,共同进步。
程序员小浩
2020/03/30
4970
漫画:二分解题模板(第一讲)- 修订版
漫画:二分法系列篇(第一讲)
不知道为什么叫做爱吃香蕉的阿珂,难道不应该是爱吃香蕉的猴子么...或者爱吃队友的露娜么?
程序员小浩
2020/03/30
5040
漫画:二分法系列篇(第一讲)
二分解决最小最大问题
给你一个整数 n ,表示有 n 间零售商店。总共有 m 种产品,每种产品的数目用一个下标从 0 开始的整数数组 quantities 表示,其中 quantities[i] 表示第 i 种商品的数目。
公众号guangcity
2021/11/17
4990
2022-03-04:爱吃香蕉的珂珂。
珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。
福大大架构师每日一题
2022/04/13
2270
2022-03-04:爱吃香蕉的珂珂。
基于二分搜索法的floor与ceil
此时使用上述二分查找算法,搜索出来的index为3。那如果我想要获取最左侧等于target的index或最右侧等于target的index呢?此时上述算法失效!
公众号guangcity
2019/10/15
9670
二分查找算法,数组有序不是必要条件!
先来一段维基百科概念。“二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。”
用户8639654
2021/07/23
1.4K0
算法篇:二分查找基础篇
https://leetcode-cn.com/problems/binary-search/
灰子学技术
2020/08/28
4380
算法学习笔记-二分法
leetcode875爱吃香蕉的珂珂https://leetcode-cn.com/problems/koko-eating-bananas/
买唯送忧
2021/05/09
4220
【2025-02-25】基础算法:二分查找(一)
📝前言说明: ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,主要跟随B站博主灵茶山的视频进行学习,专栏中的每一篇文章对应B站博主灵茶山的一个视频 ●题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。 ●文章中的理解仅为个人理解。 ●文章中的截图来源于B站博主灵茶山,如有侵权请告知。
用户11029137
2025/02/26
1070
【2025-02-25】基础算法:二分查找(一)
Leetcode|基本二分搜索+左侧边界二分+右侧边界二分
文章目录 1 基本二分搜索 2 左侧边界二分 3 右侧边界二分 4 总结 致谢 1 基本二分搜索 【区间】:[left, right] 【终止条件】:left = right + 1 int binarySearch(vector<int>& nums, int target) { // 区间[left, right] int left = 0, right = nums.size() - 1; while (left <= right) { int mid = l
SL_World
2021/09/18
1.9K0
Leetcode|二分搜索应用|1011. 在 D 天内送达包裹的能力
二分搜索 此处要注意计算天数day的边界控制 class Solution { public: int shipWithinDays(vector<int>& weights, int days) { // 确定范围[minC, maxC], minC是数组中最大元素,maxC是数组累加值 int minC = INT_MIN; int maxC = 0; for (auto& weight : weights) {
SL_World
2021/09/18
3530
二分搜索框架
注意事项 -搜索区间需要特别留意:[左开、右开] 还是 [左开、右闭) while 终止 是否需要带 =号, 区间与 最开始确定的搜索区间 二分搜索框架 int binarySearch(int num[], int target) { // 注意 二分搜索的区间是 [左开,右开] int left = 0; int right = num.length - 1; // 所以这里的终止条件是 left
艳龙
2021/12/16
2190
二分查找法:在女朋友回家之前可以玩多少个游戏?
小猿喜欢玩电子游戏。他在 steam 上买了 N 类游戏,各种类型的游戏都有,第 i 类的有 piles[i] 个游戏。
五分钟学算法
2019/10/11
5270
二分查找法:在女朋友回家之前可以玩多少个游戏?
独家 | 关于二分搜索算法你需要知道的一切
你如何在英语词典中查到一个词?我知道你不会按照这种方法做:从第一页开始,翻阅每一个词,直到找到你要找的那个词——当然,除非你的词是 "土豚"(aardvark)。但如果你要找的词是 "动物园"(zoo),这种方法会花很长时间。
数据派THU
2022/12/16
1.2K0
独家 | 关于二分搜索算法你需要知道的一切
实现一个二分搜索算法,搜索指定元素在已排序数组中的位置。(递归或者非递归实现)
简介:实现一个二分搜索算法,搜索指定元素在已排序数组中的位置。(递归或者非递归实现)
GeekLiHua
2025/01/21
1540
备战蓝桥杯————二分查找(二)
小小程序员
2024/03/07
1511
备战蓝桥杯————二分查找(二)
推荐阅读
相关推荐
LeetCode 875. 爱吃香蕉的珂珂(二分查找)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验