Minimum Total Price After Applying Discounts - Video Solutions
4014. Minimum Total Price After Applying Discounts (Leetcode Medium)
Minimum Total Price After Applying Discounts - Video Solution
Watch 9 video solutions for Minimum Total Price After Applying Discounts, a medium level problem involving Array, Two Pointers, Greedy. This walkthrough by Programming Live with Larry has 68 views views. Want to try solving it yourself? Practice on FleetCode or read the detailed text solution.
Problem Statement
You are given two integer arrays prices and discounts.
The value prices[i] represents the price of the ith item, and discounts[j] represents a discount percentage.
You may apply discounts subject to the following rules:
- Each discount can be applied to at most one item.
- Each item can receive at most one discount.
- An item may also receive no discount.
If a discount of d percent is applied to an item with price p, its final price becomes (p * (100 - d)) / 100. The final price is not rounded.
Return the minimum possible sum of final prices after assigning discounts optimally. Answers within 10-5 of the actual answer will be accepted.
Example 1:
Input: prices = [10,30,21], discounts = [50,60]
Output: 32.50000
Explanation:
- Apply
discounts[1] = 60toprices[1] = 30, thus30 * (100 - 60) / 100 = 12. - Apply
discounts[0] = 50toprices[2] = 21, thus21 * (100 - 50) / 100 = 10.5. prices[0] = 10receives no discount, so it stays 10.
The total is 12 + 10.5 + 10 = 32.50000, which is the minimum possible.
Example 2:
Input: prices = [100,70], discounts = [10,40,50]
Output: 92.00000
Explanation:āāāāāāā
- Apply
discounts[2] = 50toprices[0] = 100, thus100 * (100 - 50) / 100 = 50. - Apply
discounts[1] = 40toprices[1] = 70, thus70 * (100 - 40) / 100 = 42.
The total is 50 + 42 = 92.00000, which is the minimum possible.
Example 3:
Input: prices = [7,3,9], discounts = [100,100]
Output: 3.00000
Explanation:
- Apply
discounts[0] = 100toprices[2] = 9, thus9 * (100 - 100) / 100 = 0. - Apply
discounts[1] = 100toprices[0] = 7, thus7 * (100 - 100) / 100 = 0. prices[1] = 3receives no discount, so it stays 3.
The total is 0 + 0 + 3 = 3.00000, which is the minimum possible.
Constraints:
1 <= prices.length, discounts.length <= 1051 <= prices[i] <= 1051 <= discounts[j] <= 100