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

leetcode 1482. 制作 m 束花所需的最少天数

题目如下
在这里插入图片描述
数据范围
在这里插入图片描述
示例
在这里插入图片描述

这道题和我写过的2226. 每个小孩最多能分到多少糖果一个思路先确定上下界然后使用二分查找。
做本题之前还要看花的数量够不够花束所需要的花的数。
本题的上界就是最晚开的花因为过了这个时间也不会有新的花开了,下界就是最早开的花很显然。
同样因为开花时间很大不能一个一个枚举只能通过二分查找来加速。

通过代码

class Solution {
public:
    bool check(vector<int>& ns, int m, int k, int day) {
        int l = 0, n = ns.size();
        int count = 0, c = 0;
        for (int i = 0; i < n; i++) {
            if (ns[i] <= day) {
                c++;
                if(c == k){
                count += 1;
                c = 0;
            }
            } else
                c = 0;
        }
        return count >= m;
    }
    int minDays(vector<int>& bloomDay, int m, int k) {
        int n = bloomDay.size(), mid;
        int l = *min_element(bloomDay.begin(), bloomDay.end());
        int r = *max_element(bloomDay.begin(), bloomDay.end());
        if (n /k < m)
            return -1;
        while (l < r) {
            mid = l + (r - l) / 2;
            if (check(bloomDay, m, k, mid)) {
                r = mid;
            } else {
                l = mid + 1;
            }
        }
        return l;
    }
};

在这里插入图片描述


http://www.kler.cn/a/532889.html

相关文章:

  • ARM内核:嵌入式时代的核心引擎
  • CSS Display属性完全指南
  • Qt网络相关
  • VSCode源码分析参考资料
  • 93,【1】buuctf web [网鼎杯 2020 朱雀组]phpweb
  • C++——模版
  • git error: invalid path
  • Redis - String相关命令
  • UE编辑器工具
  • 【自学笔记】Git的重点知识点-持续更新
  • LeetCode:392.判断子序列
  • 接口游标分页
  • 本系统旨在为用户提供一个灵活且可扩展的信息安全管理解决方案,通过插件化的开发模式,使得信息安全的维护更加高效、便捷。
  • 云原生详解:构建未来应用的架构革命
  • 996引擎-怪物:Lua 刷怪+清怪+自动拾取
  • 2025_2_4 C语言中关于free函数及悬空指针,链表的一级指针和二级指指针
  • 【Block总结】CoT,上下文Transformer注意力|即插即用
  • IIC重难点-2
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter2-HTML 中的 JavaScript
  • mysql 学习7 DCL语句,用来管理数据库用户,控制数据库的访问权限
  • k8s二进制集群之各节点部署
  • 【华为OD-E卷 - 跳格子2 100分(python、java、c++、js、c)】
  • Git 的安装与基本配置
  • 使用开源项目:pdf2docx,让PDF转换为Word
  • Activity相关学习(一)
  • 进程及从Linux分析进程