|
| 1 | +<h2><a href="https://leetcode.com/problems/minimum-number-of-days-to-make-m-bouquets">Minimum Number of Days to Make m Bouquets</a></h2> <img src='https://img.shields.io/badge/Difficulty-Medium-orange' alt='Difficulty: Medium' /><hr><p>You are given an integer array <code>bloomDay</code>, an integer <code>m</code> and an integer <code>k</code>.</p> |
| 2 | + |
| 3 | +<p>You want to make <code>m</code> bouquets. To make a bouquet, you need to use <code>k</code> <strong>adjacent flowers</strong> from the garden.</p> |
| 4 | + |
| 5 | +<p>The garden consists of <code>n</code> flowers, the <code>i<sup>th</sup></code> flower will bloom in the <code>bloomDay[i]</code> and then can be used in <strong>exactly one</strong> bouquet.</p> |
| 6 | + |
| 7 | +<p>Return <em>the minimum number of days you need to wait to be able to make </em><code>m</code><em> bouquets from the garden</em>. If it is impossible to make m bouquets return <code>-1</code>.</p> |
| 8 | + |
| 9 | +<p> </p> |
| 10 | +<p><strong class="example">Example 1:</strong></p> |
| 11 | + |
| 12 | +<pre> |
| 13 | +<strong>Input:</strong> bloomDay = [1,10,3,10,2], m = 3, k = 1 |
| 14 | +<strong>Output:</strong> 3 |
| 15 | +<strong>Explanation:</strong> Let us see what happened in the first three days. x means flower bloomed and _ means flower did not bloom in the garden. |
| 16 | +We need 3 bouquets each should contain 1 flower. |
| 17 | +After day 1: [x, _, _, _, _] // we can only make one bouquet. |
| 18 | +After day 2: [x, _, _, _, x] // we can only make two bouquets. |
| 19 | +After day 3: [x, _, x, _, x] // we can make 3 bouquets. The answer is 3. |
| 20 | +</pre> |
| 21 | + |
| 22 | +<p><strong class="example">Example 2:</strong></p> |
| 23 | + |
| 24 | +<pre> |
| 25 | +<strong>Input:</strong> bloomDay = [1,10,3,10,2], m = 3, k = 2 |
| 26 | +<strong>Output:</strong> -1 |
| 27 | +<strong>Explanation:</strong> We need 3 bouquets each has 2 flowers, that means we need 6 flowers. We only have 5 flowers so it is impossible to get the needed bouquets and we return -1. |
| 28 | +</pre> |
| 29 | + |
| 30 | +<p><strong class="example">Example 3:</strong></p> |
| 31 | + |
| 32 | +<pre> |
| 33 | +<strong>Input:</strong> bloomDay = [7,7,7,7,12,7,7], m = 2, k = 3 |
| 34 | +<strong>Output:</strong> 12 |
| 35 | +<strong>Explanation:</strong> We need 2 bouquets each should have 3 flowers. |
| 36 | +Here is the garden after the 7 and 12 days: |
| 37 | +After day 7: [x, x, x, x, _, x, x] |
| 38 | +We can make one bouquet of the first three flowers that bloomed. We cannot make another bouquet from the last three flowers that bloomed because they are not adjacent. |
| 39 | +After day 12: [x, x, x, x, x, x, x] |
| 40 | +It is obvious that we can make two bouquets in different ways. |
| 41 | +</pre> |
| 42 | + |
| 43 | +<p> </p> |
| 44 | +<p><strong>Constraints:</strong></p> |
| 45 | + |
| 46 | +<ul> |
| 47 | + <li><code>bloomDay.length == n</code></li> |
| 48 | + <li><code>1 <= n <= 10<sup>5</sup></code></li> |
| 49 | + <li><code>1 <= bloomDay[i] <= 10<sup>9</sup></code></li> |
| 50 | + <li><code>1 <= m <= 10<sup>6</sup></code></li> |
| 51 | + <li><code>1 <= k <= n</code></li> |
| 52 | +</ul> |
0 commit comments