中小型网站建设如何,济南住建局官方网站,做网站卖大闸蟹,wordpress short ping文章目录1. 题目2. 解题1. 题目
你打算做甜点#xff0c;现在需要购买配料。目前共有 n 种冰激凌基料和 m 种配料可供选购。而制作甜点需要遵循以下几条规则#xff1a;
必须选择 一种 冰激凌基料。可以添加 一种或多种 配料#xff0c;也可以不添加任何配料。每种类型的配…
文章目录1. 题目2. 解题1. 题目
你打算做甜点现在需要购买配料。目前共有 n 种冰激凌基料和 m 种配料可供选购。而制作甜点需要遵循以下几条规则
必须选择 一种 冰激凌基料。可以添加 一种或多种 配料也可以不添加任何配料。每种类型的配料 最多两份 。
给你以下三个输入
baseCosts 一个长度为 n 的整数数组其中每个 baseCosts[i] 表示第 i 种冰激凌基料的价格。 toppingCosts一个长度为 m 的整数数组其中每个 toppingCosts[i] 表示 一份 第 i 种冰激凌配料的价格。 target 一个整数表示你制作甜点的目标价格。 你希望自己做的甜点总成本尽可能接近目标价格 target 。
返回最接近 target 的甜点成本。 如果有多种方案返回 成本相对较低 的一种。
示例 1
输入baseCosts [1,7], toppingCosts [3,4], target 10
输出10
解释考虑下面的方案组合所有下标均从 0 开始
- 选择 1 号基料成本 7
- 选择 1 份 0 号配料成本 1 x 3 3
- 选择 0 份 1 号配料成本 0 x 4 0
总成本7 3 0 10 。示例 2
输入baseCosts [2,3], toppingCosts [4,5,100], target 18
输出17
解释考虑下面的方案组合所有下标均从 0 开始
- 选择 1 号基料成本 3
- 选择 1 份 0 号配料成本 1 x 4 4
- 选择 2 份 1 号配料成本 2 x 5 10
- 选择 0 份 2 号配料成本 0 x 100 0
总成本3 4 10 0 17 。不存在总成本为 18 的甜点制作方案。示例 3
输入baseCosts [3,10], toppingCosts [2,5], target 9
输出8
解释可以制作总成本为 8 和 10 的甜点。返回 8 因为这是成本更低的方案。示例 4
输入baseCosts [10], toppingCosts [1], target 1
输出10
解释注意你可以选择不添加任何配料但你必须选择一种基料。提示
n baseCosts.length
m toppingCosts.length
1 n, m 10
1 baseCosts[i], toppingCosts[i] 10^4
1 target 10^4来源力扣LeetCode 链接https://leetcode-cn.com/problems/closest-dessert-cost 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
暴力搜索
class Solution {int ans INT_MAX;int diff INT_MAX;
public:int closestCost(vectorint baseCosts, vectorint toppingCosts, int target) {int n baseCosts.size(), m toppingCosts.size();for(int i 0; i n; i){dfs(toppingCosts, 0, baseCosts[i], target);}return ans;}void dfs(vectorint toppingCosts, int idx, int val, int target){if(abs(val-target) diff || (abs(val-target)diff val ans)){ans val;diff abs(val-target);}if(idx toppingCosts.size())return;dfs(toppingCosts, idx1, val, target);//不拿dfs(toppingCosts, idx1, valtoppingCosts[idx], target);//拿一份dfs(toppingCosts, idx1, val2*toppingCosts[idx], target);//拿2份}
};12 ms 8.5 MB C
更好的时间复杂度做法https://leetcode-cn.com/problems/closest-dessert-cost/solution/zhuan-hua-wei-0-1bei-bao-qiu-jie-by-luci-o5yt/将辅料数组追加一遍自己最多使用两次跟基料初始状态一起使用01背包求解 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步