题目详见:https://leetcode.com/problems/shopping-offers/
思路:递归+回溯。以必须购买的物品及其数量为目标,每次递归时,有两种情况:一为达到目标的最大花费即所有物品按原价购买,将该花费作为上限;二是购买special offers,花费为special offers的price+购买剩余物品的最少花费,此时,要考虑买到的物品是否符合要求,买到的物品数量不得超出目标数。
1 | class Solution { |
To be a better man
题目详见:https://leetcode.com/problems/shopping-offers/
思路:递归+回溯。以必须购买的物品及其数量为目标,每次递归时,有两种情况:一为达到目标的最大花费即所有物品按原价购买,将该花费作为上限;二是购买special offers,花费为special offers的price+购买剩余物品的最少花费,此时,要考虑买到的物品是否符合要求,买到的物品数量不得超出目标数。
1 | class Solution { |