优选算法_堆_最后一块石头的重量_C++

一.题目解析

每次拿两个最大的值,相等就消掉,不相等就将abs(x-y)放回数组里面

算法解析:堆->大根堆

每次我们都需要找两个最大的值,我们可以使用大根堆来快速找到最大值

二.代码编写:

cpp 复制代码
class Solution {
public:
    int lastStoneWeight(vector<int>& stones) {
        priority_queue<int>heap;//大根堆
        for(auto x:stones)heap.push(x);

        while(heap.size()>1)
        {
            int x=heap.top();heap.pop();
            int y=heap.top();heap.pop();
            if(x>y)heap.push(x-y);//相等会碎掉,不放回
        }
        return heap.empty()?0:heap.top();//堆是空就需要返回零
    }
};
相关推荐
秋天的怀念_David3 分钟前
算法一千零一夜 · 第十七夜 长街点灯
java·程序人生·算法
鶴哥只手遮天7 分钟前
AFSIM 2.9.0 深度解析:架构、原理与工程实践-第 1 章 项目全景与代码地图
c++
CV爱数码7 分钟前
论文精读|RED-CNN:残差编解码网络,低剂量 CT 去噪的经典基线
网络·人工智能·算法·cnn·ct·重建·x-ray
充值内卷12 分钟前
C++单文件迷宫游戏:TauriCPP 开发全记录
开发语言·c++·游戏
Antruly13 分钟前
C++ Web 开发选型漫谈:从 Drogon 到 libuvcpp + uvp,八个项目的定位、兼容性与务实排名
开发语言·前端·c++
EnCi Zheng17 分钟前
AI Agent工具调用防护层怎么写-一份能直接跑的Python四层拦截实现
大数据·开发语言·python
不吃鱼的羊19 分钟前
如何应对恐惧
java
不吃鱼的羊21 分钟前
如何建立高自尊
java·服务器·前端
Magicdata大数据22 分钟前
AI辅助教学:调用大模型从教材中生成习题,方便学员练习
java·spring boot·大模型·知识图谱·neo4j·ai辅助教学
香蕉大香蕉(06敬畏市场)28 分钟前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习