题目:1046. 最后一块石头的重量

有一堆石头,每块石头的重量都是正整数。

每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:

如果 x == y,那么两块石头都会被完全粉碎;
如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。
最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。

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

题解

利用优先级队列(堆头元素最大的最大堆),将全部石头放入队列;

每次从队列中取出两块石头,然后进行处理,直至最后队列不足两块石头为止。

代码

class Solution {public:int lastStoneWeight(vector<int>& stones) {priority_queue<int, vector<int>, less<int>> que;for(auto stone: stones) {que.push(stone);}while (que.size() > 1) {int y = que.top();que.pop();int x = que.top();que.pop();if (x == y) {;} else {que.push(y-x);}}if (que.empty()) {return 0;}return que.top();}
};

力扣题解-1046. 最后一块石头的重量相关推荐

  1. 力扣 leetcode 1046. 最后一块石头的重量 (python)

    Topic: 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 ...

  2. 1046. 最后一块石头的重量

    链接:1046. 最后一块石头的重量 题解: class Solution {public:int lastStoneWeight(vector<int>& stones) {st ...

  3. leetcode 1046 最后一块石头的重量

    1046. 最后一块石头的重量 难度简单98收藏分享切换为英文接收动态反馈 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x  ...

  4. LeetCode 1046. 最后一块石头的重量(priority_queue 堆)

    1. 题目 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x ...

  5. 力扣1046 - 最后一块石头的重量

    目录 1.题目-> 题目解读-> 该题需要注意的细节-> 2.更容易理解的代码(建议新手) 代码-> 核心思想-> 3.更简洁的代码(使用Queue队列) 代码-> ...

  6. leetcode 1046. 最后一块石头的重量(堆)

    有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == y ...

  7. LeetCode[1046]最后一块石头的重量

    难度:简单 题目: 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: ...

  8. 1046最后一块石头的重量 leetcode

    有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == y,那 ...

  9. 文巾解题 1046. 最后一块石头的重量

    1 题目描述 2 解题思路 用heapq(最小堆)实现.由于heapq是最小堆,但每次我们进行操作的是最大的两个石头,所以一开始的list我们要对所有的重量取负号.每次取出"最轻" ...

最新文章

  1. 敏捷之父Martin Fowler作序推荐《演进式架构》
  2. 非静态方法可以调用静态变量吗
  3. java id pid_根据id,pid生成树结构,再生成id,pid形式
  4. Java高并发系列 — AQS
  5. priority_queue的用法
  6. 梁迪:源于热爱乐于分享,MVP代表圆桌会议
  7. java策略文件_[讨论]java类文件保护策略
  8. eclipse黑色主题
  9. Python自学之路NO.1-Python的安装与配置
  10. OpenStack进入第二阶段需要解决的“七宗罪”
  11. 华为户外模式怎么设置_华为FreeLace Pro降噪器效果怎么样?降噪开启和设置教程!...
  12. Yann LeCun、Yoshua Bengio和Geoffrey Hinton的联合综述《Deep Learning》翻译
  13. zblog首页模板修改php,zblog主题模板文件的修改办法
  14. 关于mysql的mysqlAccess denied for user'root'@'IP地址'
  15. 巴别时代2017校园招聘宣讲+笔试
  16. 对于此版本,windows installer和即点即用的Office不能并行运行,因此只能安装一种类型(安装Visio破解版时的报错)
  17. jquery实现图片上传
  18. day28 re(正则)模块
  19. ROS noetic gazebo11车轮不显示的问题
  20. 【0095】mongo-c-driver-1.18.0编译安装提示libmongoc-1.0.so.0.0.0:undefined reference to `BIO_meth_set_create`

热门文章

  1. 如何用好广发样样行?
  2. 自然语言处理(NLP):20 基于知识图谱的智能问答系统
  3. 纳斯达克期货至2019年开盘下跌1.84%
  4. C语言数据类型的字节大小
  5. php 外观模式,外观模式的作用
  6. 何隆昌 element-ui 表格实现鼠标移上去显示信息
  7. 性能测试知多少 | 什么是性能测试?性能测试原理是什么?指标都有哪些?如何进行测试?
  8. XP安装pythonxy的问题
  9. 凌晨睡不着,想起了童年,写首诗吧,就叫《童年》
  10. 免费利用python把pdf格式转docx