Class Solution
java.lang.Object
g1401_1500.s1482_minimum_number_of_days_to_make_m_bouquets.Solution
1482 - Minimum Number of Days to Make m Bouquets.<p>Medium</p>
<p>You are given an integer array <code>bloomDay</code>, an integer <code>m</code> and an integer <code>k</code>.</p>
<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>
<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>
<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>
<p><strong>Example 1:</strong></p>
<p><strong>Input:</strong> bloomDay = [1,10,3,10,2], m = 3, k = 1</p>
<p><strong>Output:</strong> 3</p>
<p><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.</p>
<p>We need 3 bouquets each should contain 1 flower.</p>
<p>After day 1: [x, _, _, _, _] // we can only make one bouquet.</p>
<p>After day 2: [x, _, _, _, x] // we can only make two bouquets.</p>
<p>After day 3: [x, _, x, _, x] // we can make 3 bouquets. The answer is 3.</p>
<p><strong>Example 2:</strong></p>
<p><strong>Input:</strong> bloomDay = [1,10,3,10,2], m = 3, k = 2</p>
<p><strong>Output:</strong> -1</p>
<p><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.</p>
<p><strong>Example 3:</strong></p>
<p><strong>Input:</strong> bloomDay = [7,7,7,7,12,7,7], m = 2, k = 3</p>
<p><strong>Output:</strong> 12</p>
<p><strong>Explanation:</strong> We need 2 bouquets each should have 3 flowers.</p>
<p>Here is the garden after the 7 and 12 days:</p>
<p>After day 7: [x, x, x, x, _, x, x]</p>
<p>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.</p>
<p>After day 12: [x, x, x, x, x, x, x]</p>
<p>It is obvious that we can make two bouquets in different ways.</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>bloomDay.length == n</code></li>
<li><code>1 <= n <= 10<sup>5</sup></code></li>
<li><code>1 <= bloomDay[i] <= 10<sup>9</sup></code></li>
<li><code>1 <= m <= 10<sup>6</sup></code></li>
<li><code>1 <= k <= n</code></li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
minDays
public int minDays(int[] bloomDay, int m, int k)
-