leetcode 1482. 制作 m 束花所需的最少天数(二分查找)

给你一个整数数组 bloomDay,以及两个整数 m 和 k 。

现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。

花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。

请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。

示例 1:

输入:bloomDay = [1,10,3,10,2], m = 3, k = 1
输出:3
解释:让我们一起观察这三天的花开过程,x 表示花开,而 _ 表示花还未开。
现在需要制作 3 束花,每束只需要 1 朵。
1 天后:[x, _, _, _, _] // 只能制作 1 束花
2 天后:[x, _, _, _, x] // 只能制作 2 束花
3 天后:[x, _, x, _, x] // 可以制作 3 束花,答案为 3
示例 2:

输入:bloomDay = [1,10,3,10,2], m = 3, k = 2
输出:-1
解释:要制作 3 束花,每束需要 2 朵花,也就是一共需要 6 朵花。而花园中只有 5 朵花,无法满足制作要求,返回 -1 。
示例 3:

输入:bloomDay = [7,7,7,7,12,7,7], m = 2, k = 3
输出:12
解释:要制作 2 束花,每束需要 3 朵。
花园在 7 天后和 12 天后的情况如下:
7 天后:[x, x, x, x, _, x, x]
可以用前 3 朵盛开的花制作第一束花。但不能使用后 3 朵盛开的花,因为它们不相邻。
12 天后:[x, x, x, x, x, x, x]
显然,我们可以用不同的方式制作两束花。

解题思路

使用二分查找,查找出满足情况的最小日期
检查是否满足条件:遍历数组,如果开花日期是在限制日期前就作为有效的花朵,连续的k朵花,可作为一个有效花束,检查可以生产花束的个数是否多于m

代码

func minDays(bloomDay []int, m int, k int) int {n:=len(bloomDay)if n<m*k{return -1}max:=-1for _, day := range bloomDay {if day>max{max=day}}return sort.Search(max, func(days int) bool {cnt ,f:=0,0for i := 0; i < n; i++ {if bloomDay[i]>days{cnt=0}else{cnt++if cnt==k{f++cnt=0}}}return f>=m})
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法训练营 重编码_编码训练营手册:沉浸式工程程序介绍

算法训练营 重编码Before you spend thousands of dollars and several months of your life on a coding bootcamp, spend 30 minutes reading this handbook.在花费数千美元和一生中的几个月时间参加编码训练营之前&#xff0c;请花30分钟阅读本手册。 这本手册适用于谁&…

面向Tableau开发人员的Python简要介绍(第4部分)

用PYTHON探索数据 (EXPLORING DATA WITH PYTHON) Between data blends, joins, and wrestling with the resulting levels of detail in Tableau, managing relationships between data can be tricky.在数据混合&#xff0c;联接以及在Tableau中产生的详细程度之间进行搏斗之间…

bzoj 4552: [Tjoi2016Heoi2016]排序

Description 在2016年&#xff0c;佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题&#xff0c;现在他在研究一个难题&#xff0c;需要你来帮助他。这个难题是这样子的&#xff1a;给出一个1到n的全排列&#xff0c;现在对这个全排列序列进行m次局部排序…

oracle之 手动创建 emp 表 与 dept 表

说明&#xff1a; 有时候我们需要通用的实验数据&#xff0c;emp表 与 dept表 但是数据库中有没有。 这时&#xff0c;我们可以手动创建。 -- 创建表与数据CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, S…

深入理解InnoDB(8)—单表访问

1. 访问方法 MySQL把执行查询语句的方式称之为访问方法或者访问类型。 而访问方法大致分为两类 全表扫描索引 而进行细分的话可以分为以下几类 &#xff08;为了方便说明&#xff0c;先建一个表&#xff09; CREATE TABLE single_table (id INT NOT NULL AUTO_INCREMENT,key…

蝙蝠侠遥控器pcb_通过蝙蝠侠从Circle到ML:第二部分

蝙蝠侠遥控器pcbView Graph查看图 背景 (Background) Wait! Isn’t the above equation different from what we found last time? Yup, very different but still looks exactly the same or maybe a bit better. Just in case you are wondering what I am talking about, p…

camera驱动框架分析(上)

前言 camera驱动框架涉及到的知识点比较多&#xff0c;特别是camera本身的接口就有很多&#xff0c;有些是直接连接到soc的camif口上的&#xff0c;有些是通过usb接口导出的&#xff0c;如usb camera。我这里主要讨论前者&#xff0c;也就是与soc直连的。我认为凡是涉及到usb的…

工程项目管理需要注意哪些问题

在社会科学技术发展和市场经济繁荣昌盛的今天&#xff0c;为更好的满足社会人性化的需求&#xff0c;建设施工企业在建筑施工、布局以及内部运行都给予了落实。而工程项目是建筑施工企业面向建筑市场的窗口&#xff0c;是企业建筑活动的前沿阵地&#xff0c;管理需更严谨。 虽说…

leetcode 872. 叶子相似的树(dfs)

请考虑一棵二叉树上所有的叶子&#xff0c;这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子&#xff0c;如上图所示&#xff0c;给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两棵二叉树的叶值序列是相同&#xff0c;那么我们就认为它们是 叶相似 的。 …

探索感染了COVID-19的动物的数据

数据 (The data) With the number of cases steadily rising day by day, COVID-19 has been pretty much in the headlines of every newspaper known to man. Despite the massive amount of attention, a topic that has remained mostly untouched (some exceptions being …

Facebook哭晕在厕所,调查显示用VR体验社交的用户仅为19%

美国娱乐软件协会ESA调查显示&#xff0c;有74%的用户使用VR玩游戏&#xff0c;而仅有19%的用户会用VR进行社交。 当我们说到VR社交&#xff0c;必然离不开Facebook。在刚刚结束的F8大会上&#xff0c;小扎展示了VR社交平台Facebook Spaces测试版&#xff0c;巧的是此前也有好…

网页自动刷新

eg1&#xff1a;<meta http-equiv”refresh” content”4” /> 间隔4秒网页自动刷新 eg2&#xff1a;<meta http-equiv”refresh” content”8;http://www.baidu.com” /> 等待8秒自动跳转到百度页面转载于:https://www.cnblogs.com/zwtqf/p/7667774.html

解决Javascript疲劳的方法-以及其他所有疲劳

Learn your fundamentals, and never worry again. 了解您的基础知识&#xff0c;再也不用担心。 新工具让我担心 (New Tools Worry Me) When JavaScripts shiny tool of the day comes out, I sometimes overreact. 当JavaScript一天一度的闪亮工具问世时&#xff0c;我有时R…

Java 8 的List<V> 转成 Map<K, V>

问题&#xff1a; Java 8 的List 转成 Map<K, V> 我想要使用Java 8的streams和lambdas转换一个 List 对象为 Map 下面是我在Java 7里面的写法 private Map<String, Choice> nameMap(List<Choice> choices) {final Map<String, Choice> hashMap new…

已知两点坐标拾取怎么操作_已知的操作员学习-第4部分

已知两点坐标拾取怎么操作有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU’s YouTube Lecture “Deep Learning”. This is a full transcript of the lecture video & matching slides. We hope, you enjoy this as mu…

北京供销大数据集团发布SinoBBD Cloud 一体化推动产业云发展

9月5日&#xff0c;第五届全球云计算大会在上海世博展览馆盛大开幕&#xff0c;国内外顶尖企业汇聚一堂&#xff0c;新一代云计算技术产品纷纷亮相。作为国内领先的互联网基础服务提供商&#xff0c;北京供销大数据集团(以下简称“SinoBBD”)受邀参加此次大会&#xff0c;并正式…

windows下有趣的小玩意

1.显示文件和隐藏文件。在当前目录下shift右键 选择cmd命令 运行显示文件: attrib -s -h 文件名 隐藏文件: attrib -s h 文件名 2.查看电脑支持的最大内存 在cmd下运行wmic memphysical get maxcapacity所得结果单位mb 所得/1024/1024 得到单位G 3.windowsR 输入…

rxjs angular_Angular RxJS深度

rxjs angularIn this tutorial, well learn to use the RxJS 6 library with Angular 6 or Angular 7. Well learn about:在本教程中&#xff0c;我们将学习将RxJS 6库与Angular 6或Angular 7结合使用。我们将了解&#xff1a; How to import the Observable class and the ot…

HashMap, LinkedHashMap 和 TreeMap的区别

HashMap, LinkedHashMap 和 TreeMap的区别 Java里面的HashMap, LinkedHashMap 和 TreeMap 有什么区别?我看不出以下3个key和value有什么不同的。Hashtables里面又是怎么样的呢&#xff1f; Map m1 new HashMap(); m1.put("map", "HashMap"); m1.put(&q…

“陪护机器人”研报:距离真正“陪护”还差那么一点

一款有“缺陷”的机器人&#xff0c;怎能做到真正的“陪护”&#xff1f; 近日&#xff0c;鼎盛智能发布了一款名为Ibotn的&#xff08;爱蹦&#xff09;幼儿陪伴机器人&#xff0c;核心看点就是通过人脸识别、场景识别等计算机视觉技术来实现机器人对儿童的陪护。不过&#xf…