{leetcode}/problems/minimum-number-of-coins-for-fruits/[LeetCode - 2944. Minimum Number of Coins for Fruits ^]
You are given an integer array prices
where prices[i]
denotes the number of coins needed to purchase the ith
fruit.
The fruit market has the following reward for each fruit:
-
If you purchase the
ith
fruit atprices[i]
coins, you can get any number of the next(i + 1)
fruits for free.
Note that even if you can take fruit j
for free, you can still purchase it for prices[j]
coins to receive its reward.
Return the minimum number of coins needed to acquire all the fruits.
Example 1:
<div class="example-block"> Input: <span class="example-io">prices = [3,1,2]
Output: <span class="example-io">4
Explanation:
-
Purchase the 1st fruit with
prices[0] = 3
coins, you are allowed to take the 2nd fruit for free. -
Purchase the 2nd fruit with
prices[1] = 1
coin, you are allowed to take the 3rd fruit for free. -
Take the 3rd fruit for free.
Note that even though you could take the 2nd fruit for free as a reward of buying 1st fruit, you purchase it to receive its reward, which is more optimal.
Example 2:
<div class="example-block"> Input: <span class="example-io">prices = [1,10,1,1]
Output: <span class="example-io">2
Explanation:
-
Purchase the 1st fruit with
prices[0] = 1
coin, you are allowed to take the 2nd fruit for free. -
Take the 2nd fruit for free.
-
Purchase the 3rd fruit for
prices[2] = 1
coin, you are allowed to take the 4th fruit for free. -
Take the 4th fruit for free.
Example 3:
<div class="example-block"> Input: <span class="example-io">prices = [26,18,6,12,49,7,45,45]
Output: <span class="example-io">39
Explanation:
-
Purchase the 1st fruit with
prices[0] = 26
coin, you are allowed to take the 2nd fruit for free. -
Take the 2nd fruit for free.
-
Purchase the 3rd fruit for
prices[2] = 6
coin, you are allowed to take the 4th, 5th and 6th (the next three) fruits for free. -
Take the 4th fruit for free.
-
Take the 5th fruit for free.
-
Purchase the 6th fruit with
prices[5] = 7
coin, you are allowed to take the 8th and 9th fruit for free. -
Take the 7th fruit for free.
-
Take the 8th fruit for free.
Note that even though you could take the 6th fruit for free as a reward of buying 3rd fruit, you purchase it to receive its reward, which is more optimal.
Constraints:
-
1 ⇐ prices.length ⇐ 1000
-
1 ⇐ prices[i] ⇐ 105