【leetcode】1475. Final Prices With a Special Discount in a Shop
题目如下:
Given the array
priceswhereprices[i]is the price of theithitem in a shop. There is a special discount for items in the shop, if you buy theithitem, then you will receive a discount equivalent toprices[j]wherejis the minimum index such thatj > iandprices[j] <= prices[i], otherwise, you will not receive any discount at all.Return an array where the
ithelement is the final price you will pay for theithitem of the shop considering the special discount.Example 1:
Input: prices = [8,4,6,2,3] Output: [4,2,4,2,3] Explanation: For item 0 with price[0]=8 you will receive a discount equivalent to prices[1]=4, therefore, the final price you will pay is 8 - 4 = 4. For item 1 with price[1]=4 you will receive a discount equivalent to prices[3]=2, therefore, the final price you will pay is 4 - 2 = 2. For item 2 with price[2]=6 you will receive a discount equivalent to prices[3]=2, therefore, the final price you will pay is 6 - 2 = 4. For items 3 and 4 you will not receive any discount at all.Example 2:
Input: prices = [1,2,3,4,5] Output: [1,2,3,4,5] Explanation: In this case, for all items, you will not receive any discount at all.Example 3:
Input: prices = [10,1,1,6] Output: [9,0,1,6]Constraints:
1 <= prices.length <= 5001 <= prices[i] <= 10^3
解题思路:因为prices.length最大只有500,所以O(n^2)的时间复杂度完全可以接受。
代码如下:
class Solution(object): def finalPrices(self, prices): """ :type prices: List[int] :rtype: List[int] """ res = [] for i in range(len(prices)): discount = 0 for j in range(i+1,len(prices)): if prices[i] >= prices[j]: discount = prices[j] break res.append(prices[i] - discount) return res
浙公网安备 33010602011771号