力扣题解-1046. 最后一块石头的重量
题目: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. 最后一块石头的重量相关推荐
- 力扣 leetcode 1046. 最后一块石头的重量 (python)
Topic: 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 ...
- 1046. 最后一块石头的重量
链接:1046. 最后一块石头的重量 题解: class Solution {public:int lastStoneWeight(vector<int>& stones) {st ...
- leetcode 1046 最后一块石头的重量
1046. 最后一块石头的重量 难度简单98收藏分享切换为英文接收动态反馈 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x ...
- LeetCode 1046. 最后一块石头的重量(priority_queue 堆)
1. 题目 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x ...
- 力扣1046 - 最后一块石头的重量
目录 1.题目-> 题目解读-> 该题需要注意的细节-> 2.更容易理解的代码(建议新手) 代码-> 核心思想-> 3.更简洁的代码(使用Queue队列) 代码-> ...
- leetcode 1046. 最后一块石头的重量(堆)
有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == y ...
- LeetCode[1046]最后一块石头的重量
难度:简单 题目: 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: ...
- 1046最后一块石头的重量 leetcode
有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == y,那 ...
- 文巾解题 1046. 最后一块石头的重量
1 题目描述 2 解题思路 用heapq(最小堆)实现.由于heapq是最小堆,但每次我们进行操作的是最大的两个石头,所以一开始的list我们要对所有的重量取负号.每次取出"最轻" ...
最新文章
- 敏捷之父Martin Fowler作序推荐《演进式架构》
- 非静态方法可以调用静态变量吗
- java id pid_根据id,pid生成树结构,再生成id,pid形式
- Java高并发系列 — AQS
- priority_queue的用法
- 梁迪:源于热爱乐于分享,MVP代表圆桌会议
- java策略文件_[讨论]java类文件保护策略
- eclipse黑色主题
- Python自学之路NO.1-Python的安装与配置
- OpenStack进入第二阶段需要解决的“七宗罪”
- 华为户外模式怎么设置_华为FreeLace Pro降噪器效果怎么样?降噪开启和设置教程!...
- Yann LeCun、Yoshua Bengio和Geoffrey Hinton的联合综述《Deep Learning》翻译
- zblog首页模板修改php,zblog主题模板文件的修改办法
- 关于mysql的mysqlAccess denied for user'root'@'IP地址'
- 巴别时代2017校园招聘宣讲+笔试
- 对于此版本,windows installer和即点即用的Office不能并行运行,因此只能安装一种类型(安装Visio破解版时的报错)
- jquery实现图片上传
- day28 re(正则)模块
- ROS noetic gazebo11车轮不显示的问题
- 【0095】mongo-c-driver-1.18.0编译安装提示libmongoc-1.0.so.0.0.0:undefined reference to `BIO_meth_set_create`