文章目录

  • 1. 题目
  • 2. 解题

1. 题目

一家商店正在打折销售糖果。每购买 两个 糖果,商店会 免费 送一个糖果。

免费送的糖果唯一的限制是:它的价格需要小于等于购买的两个糖果价格的 较小值

比方说,总共有 4 个糖果,价格分别为 1 ,2 ,3 和 4 ,一位顾客买了价格为 2 和 3 的糖果,那么他可以免费获得价格为 1 的糖果,但不能获得价格为 4 的糖果。
给你一个下标从 0 开始的整数数组 cost ,其中 cost[i] 表示第 i 个糖果的价格,请你返回获得 所有 糖果的 最小 总开销。

示例 1:
输入:cost = [1,2,3]
输出:5
解释:我们购买价格为 2 和 3 的糖果,然后免费获得价格为 1 的糖果。
总开销为 2 + 3 = 5 。这是开销最小的 唯一 方案。
注意,我们不能购买价格为 1 和 3 的糖果,并免费获得价格为 2 的糖果。
这是因为免费糖果的价格必须小于等于购买的 2 个糖果价格的较小值。示例 2:
输入:cost = [6,5,7,9,2,2]
输出:23
解释:最小总开销购买糖果方案为:
- 购买价格为 9 和 7 的糖果
- 免费获得价格为 6 的糖果
- 购买价格为 5 和 2 的糖果
- 免费获得价格为 2 的最后一个糖果
因此,最小总开销为 9 + 7 + 5 + 2 = 23 。示例 3:
输入:cost = [5,5]
输出:10
解释:由于只有 2 个糖果,我们需要将它们都购买,而且没有免费糖果。
所以总最小开销为 5 + 5 = 10 。提示:
1 <= cost.length <= 100
1 <= cost[i] <= 100

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-cost-of-buying-candies-with-discount
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 假设 a>b>c>da > b > c > da>b>c>d,a+b+d−(a+c+b)=d−c<0a+b+d-(a+c+b) = d-c < 0a+b+d−(a+c+b)=d−c<0,所有买最大的两个,免费获取第三大的,剩余的依次类推,是最优的方法
class Solution {public:int minimumCost(vector<int>& cost) {// a > b > c > d// a+b+d-(a+c+b) < 0sort(cost.rbegin(), cost.rend());int ans = 0, n = cost.size();for(int i = 0; i < n; i+=3){ans += cost[i];if(i+1 < n)ans += cost[i+1];}return ans;}
};

8 ms 10.4 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2144. 打折购买糖果的最小开销(贪心)相关推荐

  1. Leetcode70场双周赛-第一题2144. 打折购买糖果的最小开销

    题目描述 2144. 打折购买糖果的最小开销 解题思路 第一步,进行排序. 第二步,从最后一个往前找,每次找三次. 第三步,看最后还剩几个,最后只能剩1个2个0个 剩0个刚好结束,剩1个或两个,就直接 ...

  2. LeetCode简单题之打折购买糖果的最小开销

    题目 一家商店正在打折销售糖果.每购买 两个 糖果,商店会 免费 送一个糖果. 免费送的糖果唯一的限制是:它的价格需要小于等于购买的两个糖果价格的 较小值 . 比方说,总共有 4 个糖果,价格分别为 ...

  3. leetcode:2448. 使数组相等的最小开销【猜结论落在给定点 + 考虑初始值和变化量 + 三分法模板学习】

    目录 题目截图 题目分析 第一版丑陋了考虑所有[minn, maxn]变化量 第二版优雅只考虑给定点(猜结论) 三分法学习 总结 题目截图 题目分析 由于暴力是平方不行 这种题目可以考虑变化量,从最小 ...

  4. Leetcode刷题 155题: 最小栈(基于python3和c++两种语言)

    ** Leetcode刷题 155题: 最小栈(基于python3和c++两种语言) ** ** 题目: ** 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. ...

  5. 【LeetCode】【HOT】155. 最小栈(辅助栈)

    [LeetCode][HOT]155. 最小栈 文章目录 [LeetCode][HOT]155. 最小栈 package hot;import java.util.ArrayDeque; import ...

  6. 【LeetCode】剑指 Offer 40. 最小的k个数

    [LeetCode]剑指 Offer 40. 最小的k个数 文章目录 [LeetCode]剑指 Offer 40. 最小的k个数 一.笨比解法 二.堆排序 三.快速选择 总结 一.笨比解法 选择排序变 ...

  7. 【树的算法】之求分割木板最小开销

    #include <iostream> #include <queue> using namespace std; /** * 原题: * 现需要将一块木板切成N块,每次切断木 ...

  8. LeetCode 712. 两个字符串的最小ASCII删除和

    LeetCode 712. 两个字符串的最小ASCII删除和 文章目录 LeetCode 712. 两个字符串的最小ASCII删除和 题目描述 一.解题关键词 二.解题报告 1.思路分析 2.时间复杂 ...

  9. [LeetCode] 1431. 拥有最多糖果的孩子 普通解法和大神解法

    [LeetCode] 1431. 拥有最多糖果的孩子 给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目. 对每一个孩子 ...

最新文章

  1. python常用魔法函数
  2. JavaWeb——jsp-config
  3. Ubuntu下安装Apache+PHP+Mysql
  4. 《极乐空间》特效制作与渲染
  5. HuaWei设置镜像端口和观察端口
  6. 信息系统项目管理师考前冲刺第一天:项目基础知识和立项管理
  7. 计算机视觉与深度学习 | 基于DNN神经网络实现人的年龄及性别预测(代码类)
  8. 接口测试工具_接口测试工具Jmeter与postman - 瞎扯
  9. 浅谈Java中类加载机制
  10. forEach与map
  11. 尼奥智能陪伴机器人如何绑定设备_巴巴腾 智能陪护儿童机器人A3,为儿童专业定制的小伙伴...
  12. 信息安全工程师软考——第一章 网络信息安全概述笔记!!!!
  13. CentOS 7 安装Dukto(局域网通信工具)
  14. 基于UWB的室内SDS_TWR测距算法优化和定位算法融合的研究
  15. 光纤设备及跳线接口图鉴
  16. php文本式留言,基于文本的留言簿_php
  17. 【原创】Python 极验滑块验证
  18. windows下 python安装pip 简易教程
  19. nginx进程模型,事件模型
  20. Allegro 中将线段(Lines)合成封闭图形(Shapes)的方法

热门文章

  1. c语言中- gt he,C语言中deta,fabs,lt;stdlib.hgt;,lt;stdio.hgt;分别是什么意思
  2. 成本预算的四个步骤_全网推广步骤有哪些?
  3. Django简介以及安装
  4. python简易停车系统
  5. vue 鼠标点击事件_VBA代码解决方案第115讲:点击鼠标实现精准控制触发事件的VBA代码第二方案...
  6. html+注释格式化,使用xml注释来生成格式化的html输出
  7. 微信红包问题:找出某个出现次数超过红包总数一半的红包的金额(面试题)
  8. java 复杂 sql_复杂的SQL条件
  9. 带通滤波器作用和用途_带通滤波器作用
  10. 在使用apt-get update 时更行列表,显示[Connecting to archive.ubuntu.com (2001:67c:1360:8001::21)]超时