文章目录

  • 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. 连接棒材的最低费用(优先队列+贪心)相关推荐

  1. leetcode 1584. 连接所有点的最小费用(并查集)

    给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] . 连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi ...

  2. LeetCode 1584 连接所有点的最小费用

    题目链接 给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] . 连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 ...

  3. LeetCode 1642. 可以到达的最远建筑(二分查找 / 优先队列贪心)

    文章目录 1. 题目 2. 解题 2.1 二分查找 2.2 优先队列+贪心 1. 题目 给你一个整数数组 heights ,表示建筑物的高度.另有一些砖块 bricks 和梯子 ladders . 你 ...

  4. 【CF 732E】Sockets(优先队列+贪心)

    [CF 732E]Sockets(优先队列+贪心) 题目大意: n台电脑,m个供电器. 每台电脑和每个供电器都有电量,当电脑i的电量和供电器j电量相同时,可以连接供电. 现在提供变压器,可以连接到供电 ...

  5. LeetCode简单题之去掉最低工资和最高工资后的工资平均值

    题目 给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资. 请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值. 示例 1: 输入:s ...

  6. 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 ...

  7. LeetCode 2131. 连接两字母单词得到的最长回文串

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串数组 words .words 中每个元素都是一个包含 两个 小写英文字母的单词. 请你从 words 中选择一些元素并按 任意顺序 连接它 ...

  8. LeetCode 2023. 连接后等于目标字符串的字符串对

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 数字 字符串数组 nums 和一个 数字 字符串 target ,请你返回 nums[i] + nums[j] (两个字符串连接)结果等于 ta ...

  9. LeetCode 1000. 合并石头的最低成本(区间DP)

    文章目录 1. 题目 2. 解题 1. 题目 有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头. 每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆 ...

最新文章

  1. 十天精通CSS3学习笔记 part2
  2. java valueof_Java Short类valueOf()方法及示例
  3. C++设计模式-中介者模式
  4. 转: CentOS 安装 SVN1.8 客户端
  5. 好消息,scott的asp.net 2.0数据导航系列全部出版了
  6. jQuery鼠标事件整理
  7. 关于 TCP window size
  8. 《软件设计师教程最新版(第三版》
  9. symbian的字体包
  10. 社区论坛小程序源码,功能齐全,简洁漂亮,前端+后端
  11. Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19【转】
  12. kthreaddk病毒查杀记录
  13. Android强制竖屏
  14. 计算机参数含义,电脑内存条参数各有什么含义?
  15. 商品支付,支付逻辑漏洞安全(niushop)——实例讲解一毛钱购买手机
  16. CSDN如何快速提升等级
  17. 浏览器调试技巧(debugger调试)
  18. 【工业4.0系列谈之五】建设智能工厂 可从这6个方面着手
  19. web 前后台数据交互的方式
  20. 2102王海涛随堂笔记

热门文章

  1. python中的zip模块
  2. 手机编写python程序_Python实现自动上京东抢手机
  3. ModuleNotFoundError: No module named '_ctypes' ERROR:Command errored out with exit status 1: python
  4. c++ int *p = new int()
  5. vps搭建网站服务器,vps如何架设网站服务器
  6. 小android模拟器,小姚Android模拟器工作室版本v6.2.7.0正式版
  7. 【windows phone】CollectionViewSource的妙用
  8. 浅析bootstrap原理及优缺点
  9. response.setContentType()的作用及MIME参数详解
  10. What day is that day?(快速幂,打表找周期,或者求通项公式)