1482. 制作 m 束花所需的最少天数
难度中等96收藏分享切换为英文接收动态反馈
给你一个整数数组 bloomDay,以及两个整数 m 和 k 。
现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。
花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。
请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。
示例 1:
1 | 输入:bloomDay = [1,10,3,10,2], m = 3, k = 1 |
示例 2:
1 | 输入:bloomDay = [1,10,3,10,2], m = 3, k = 2 |
示例 3:
1 | 输入:bloomDay = [7,7,7,7,12,7,7], m = 2, k = 3 |
示例 4:
1 | 输入:bloomDay = [1000000000,1000000000], m = 1, k = 1 |
示例 5:
1 | 输入:bloomDay = [1,10,2,9,3,8,4,7,5,6], m = 4, k = 2 |
提示:
bloomDay.length == n1 <= n <= 10^51 <= bloomDay[i] <= 10^91 <= m <= 10^61 <= k <= n
二分答案
使用二分查找方法查找所需的天数,如果mid天可以生成m束花那么可以减小这个天数,如果mid天不可以生成m束花那么需要增大这个天数,直至有一天能生成m束花,且m-1天不可以生成m束花。
1 | class Solution { |