LeetCode 1167. 连接棒材的最低费用(优先队列+贪心)
文章目录
- 1. 题目
- 2. 解题
1. 题目
为了装修新房,你需要加工一些长度为正整数的棒材 sticks。
如果要将长度分别为 X 和 Y 的两根棒材连接在一起,你需要支付 X + Y 的费用。
由于施工需要,你必须将所有棒材连接成一根。
返回你把所有棒材 sticks 连成一根所需要的最低费用。注意你可以任意选择棒材连接的顺序。
示例 1:
输入:sticks = [2,4,3]
输出:14
解释:先将 2 和 3 连接成 5,花费 5;再将 5 和 4 连接成 9;总花费为 14。
示例 2:
输入:sticks = [1,8,3,5]
输出:30提示:
1 <= sticks.length <= 10^4
1 <= sticks[i] <= 10^4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-cost-to-connect-sticks
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 短的优先,后面会被多次加总,短的优先保证花费最小
class Solution {public:int connectSticks(vector<int>& sticks) {priority_queue<int,vector<int>,greater<int>> q;//小顶堆for(int i : sticks) q.push(i);int a, b, sum = 0;while(q.size() > 1){a = q.top();//取出2根短的q.pop();b = q.top();q.pop();q.push(a+b);//粘好了sum += a+b;//花费}return sum;}
};
396 ms 23 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 1167. 连接棒材的最低费用(优先队列+贪心)相关推荐
- leetcode 1584. 连接所有点的最小费用(并查集)
给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] . 连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi ...
- LeetCode 1584 连接所有点的最小费用
题目链接 给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] . 连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 ...
- LeetCode 1642. 可以到达的最远建筑(二分查找 / 优先队列贪心)
文章目录 1. 题目 2. 解题 2.1 二分查找 2.2 优先队列+贪心 1. 题目 给你一个整数数组 heights ,表示建筑物的高度.另有一些砖块 bricks 和梯子 ladders . 你 ...
- 【CF 732E】Sockets(优先队列+贪心)
[CF 732E]Sockets(优先队列+贪心) 题目大意: n台电脑,m个供电器. 每台电脑和每个供电器都有电量,当电脑i的电量和供电器j电量相同时,可以连接供电. 现在提供变压器,可以连接到供电 ...
- LeetCode简单题之去掉最低工资和最高工资后的工资平均值
题目 给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资. 请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值. 示例 1: 输入:s ...
- LeetCode 23. Merge k Sorted Lists--Python解法--优先队列,分治法
题目地址:Merge k Sorted Lists - LeetCode Merge k sorted linked lists and return it as one sorted list. A ...
- LeetCode 2131. 连接两字母单词得到的最长回文串
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串数组 words .words 中每个元素都是一个包含 两个 小写英文字母的单词. 请你从 words 中选择一些元素并按 任意顺序 连接它 ...
- LeetCode 2023. 连接后等于目标字符串的字符串对
文章目录 1. 题目 2. 解题 1. 题目 给你一个 数字 字符串数组 nums 和一个 数字 字符串 target ,请你返回 nums[i] + nums[j] (两个字符串连接)结果等于 ta ...
- LeetCode 1000. 合并石头的最低成本(区间DP)
文章目录 1. 题目 2. 解题 1. 题目 有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头. 每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆 ...
最新文章
- 十天精通CSS3学习笔记 part2
- java valueof_Java Short类valueOf()方法及示例
- C++设计模式-中介者模式
- 转: CentOS 安装 SVN1.8 客户端
- 好消息,scott的asp.net 2.0数据导航系列全部出版了
- jQuery鼠标事件整理
- 关于 TCP window size
- 《软件设计师教程最新版(第三版》
- symbian的字体包
- 社区论坛小程序源码,功能齐全,简洁漂亮,前端+后端
- Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19【转】
- kthreaddk病毒查杀记录
- Android强制竖屏
- 计算机参数含义,电脑内存条参数各有什么含义?
- 商品支付,支付逻辑漏洞安全(niushop)——实例讲解一毛钱购买手机
- CSDN如何快速提升等级
- 浏览器调试技巧(debugger调试)
- 【工业4.0系列谈之五】建设智能工厂 可从这6个方面着手
- web 前后台数据交互的方式
- 2102王海涛随堂笔记
热门文章
- python中的zip模块
- 手机编写python程序_Python实现自动上京东抢手机
- ModuleNotFoundError: No module named '_ctypes' ERROR:Command errored out with exit status 1: python
- c++ int *p = new int()
- vps搭建网站服务器,vps如何架设网站服务器
- 小android模拟器,小姚Android模拟器工作室版本v6.2.7.0正式版
- 【windows phone】CollectionViewSource的妙用
- 浅析bootstrap原理及优缺点
- response.setContentType()的作用及MIME参数详解
- What day is that day?(快速幂,打表找周期,或者求通项公式)