当前位置:网站首页>LeetCode 1774. 最接近目标价格的甜点成本 每日一题
LeetCode 1774. 最接近目标价格的甜点成本 每日一题
2022-07-07 15:32:00 【@小红花】
问题描述
你打算做甜点,现在需要购买配料。目前共有 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] <= 104
1 <= target <= 104来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/closest-dessert-cost
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Java
class Solution {
int ans = Integer.MAX_VALUE;
public int closestCost(int[] baseCosts, int[] toppingCosts, int target) {
int n = baseCosts.length;
for(int i = 0;i < n;i++){
dfs(toppingCosts,0,baseCosts[i],target);
}
return ans;
}
public void dfs(int[] toppingCosts,int index,int sum,int target){
if(Math.abs(sum - target) < Math.abs(ans - target)) ans = sum;
else if(Math.abs(sum - target) == Math.abs(ans - target)) ans = ans < target ? ans : sum;
//更新结果后在判断
if(index == toppingCosts.length || sum >= target) return;
//加配料
for(int i = 0;i < 3;i++){
dfs(toppingCosts,index + 1,sum + toppingCosts[index] * i,target);
}
}
}
边栏推荐
- Personal notes of graphics (4)
- 字节跳动高工面试,轻松入门flutter
- Lie cow count (spring daily question 53)
- Laravel post shows an exception when submitting data
- [summary of knowledge] summary of notes on using SVN in PHP
- IP地址和物理地址有什么区别
- [vulnhub range] thales:1
- 爬虫(17) - 面试(2) | 爬虫面试题库
- 【DesignMode】外观模式 (facade patterns)
- 低代码(lowcode)帮助运输公司增强供应链管理的4种方式
猜你喜欢
随机推荐
Prediction - Grey Prediction
字节跳动Android面试,知识点总结+面试题解析
Horizontal and vertical centering method and compatibility
[summary of knowledge] summary of notes on using SVN in PHP
Laravel 服务提供者实例教程 —— 创建 Service Provider 测试实例
最新2022年Android大厂面试经验,安卓View+Handler+Binder
SqlServer2014+: 创建表的同时创建索引
Personal notes of graphics (3)
Imitate the choice of enterprise wechat conference room
JS中null NaN undefined这三个值有什么区别
Temperature sensor chip used in temperature detector
Introduction to ThinkPHP URL routing
Arduino 控制的双足机器人
Have fun | latest progress of "spacecraft program" activities
QT中自定义控件的创建到封装到工具栏过程(二):自定义控件封装到工具栏
Geoserver2.18 series (5): connect to SQLSERVER database
The differences between exit, exit (0), exit (1), exit ('0 '), exit ('1'), die and return in PHP
值得一看,面试考点与面试技巧
[Android -- data storage] use SQLite to store data
os、sys、random标准库主要功能