当前位置:网站首页>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);
}
}
}边栏推荐
- 【DesignMode】外观模式 (facade patterns)
- PHP realizes wechat applet face recognition and face brushing login function
- Prediction - Grey Prediction
- 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
- Advanced C language -- function pointer
- 华东师大团队提出,具有DNA调控电路的卷积神经网络的系统分子实现
- Arduino 控制的双足机器人
- Sqlserver2014+: create indexes while creating tables
- How does laravel run composer dump autoload without emptying the classmap mapping relationship?
- Personal notes of graphics (1)
猜你喜欢

Spark Tuning (III): persistence reduces secondary queries
最新高频Android面试题目分享,带你一起探究Android事件分发机制

The difference and working principle between compiler and interpreter

平衡二叉树(AVL)

spark调优(三):持久化减少二次查询

node:504报错

预售17.9万,恒驰5能不能火?产品力在线,就看怎么卖
![[C language] question set of X](/img/17/bfa57de183c44cf0a3c6637bb65a9d.jpg)
[C language] question set of X

水平垂直居中 方法 和兼容

Pycharm terminal enables virtual environment
随机推荐
Pisa-Proxy SQL 解析之 Lex & Yacc
Three. JS series (2): API structure diagram-2
无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
Opencv configuration 2019vs
Advanced C language -- function pointer
The team of East China Normal University proposed the systematic molecular implementation of convolutional neural network with DNA regulation circuit
LocalStorage和SessionStorage
Lie cow count (spring daily question 53)
Ray and OBB intersection detection
Cesium (4): the reason why gltf model is very dark after loading
logback. XML configure logs of different levels and set color output
C语言进阶——函数指针
水平垂直居中 方法 和兼容
射线与OBB相交检测
如何选择合适的自动化测试工具?
【HCSD大咖直播】亲授大厂面试秘诀-简要笔记
[designmode] facade patterns
最新2022年Android大厂面试经验,安卓View+Handler+Binder
logback.xml配置不同级别日志,设置彩色输出
01tire+链式前向星+dfs+贪心练习题.1