专题十四_优先级队列

news2024/9/20 1:00:20

目录

1046. 最后一块石头的重量

解析

题解

703. 数据流中的第 K 大元素

解析

题解

692. 前K个高频单词

解析

题解


1046. 最后一块石头的重量

1046. 最后一块石头的重量

解析

题解

class Solution {
public:
    int lastStoneWeight(vector<int>& stones) {
        // 专题十四_优先级队列_最后一块石头重量_C++
        // 1.创建一个大根堆
        priority_queue<int> heap;
        // 2.将所有的元素丢进这个堆里面
        for(auto x : stones)
            heap.push(x);
        // 3.模拟这个过程
        while(heap.size() > 1)
        {
            int a = heap.top(); heap.pop();
            int b = heap.top(); heap.pop();
            if(a > b) heap.push(a - b);
        }
        return heap.size() ? heap.top() : 0;
    }
};

703. 数据流中的第 K 大元素

703. 数据流中的第 K 大元素

 

 

解析

 

题解

class KthLargest {
public:
    // 创建一个大小为 k 的小根堆
    priority_queue<int, vector<int>, greater<int>> heap;
    int _k; 
    KthLargest(int k, vector<int>& nums) {
        _k = k;
        for(auto x : nums)
        {
            heap.push(x);
            if(heap.size() > _k) heap.pop();
        }
    }
    
    int add(int val) {
        heap.push(val);
        if(heap.size() > _k) heap.pop();
        return heap.top();
    }
};

/**
 * Your KthLargest object will be instantiated and called as such:
 * KthLargest* obj = new KthLargest(k, nums);
 * int param_1 = obj->add(val);
 */

692. 前K个高频单词

692. 前K个高频单词

解析

题解

class Solution {
public:
    typedef pair<string, int> PSI;
    struct cmp{
        bool operator()(const PSI& a, const PSI& b)
        {
            if(a.second == b.second) // 频次相同,字典序按照大根堆的方式排序
            {
                return a.first < b.first;
            }
            return a.second > b.second; // 不同按频次大小排序,按照小根堆方式
        }
    };
    vector<string> topKFrequent(vector<string>& words, int k) {
        // 80.专题十四_优 先级队列_前 K 个高频单_C++
        // 1.统计一下每个单词的频次
        unordered_map<string, int> hash;
        for(auto& s : words) hash[s]++;

        // 2.创建一个大小为 k 的堆
        priority_queue<PSI, vector<PSI>, cmp> heap;

        // 3.TpoK 的主逻辑
        for(auto& psi : hash)
        {
            heap.push(psi);
            if(heap.size() > k) heap.pop();
        }

        // 4.提取结果
        vector<string> ret(k);
        for(int i = k - 1; i >= 0; i--)
        {
            ret[i] = heap.top().first;
            heap.pop();
        }
        return ret;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2037872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea 对于mybatis-plus框架JRebelX和XRebel热启动失效问题

1.mybatis-plus不需要使用热启动插件&#xff0c;修改完代码后&#xff0c;直接重新编译一下即可&#xff0c;不需要重启 2.如果是mapper.xml文件&#xff0c;则直接安装JRebel MybatisPlus extension 插件即可完成mapper.xml静态文件更改进行热加载

墨水屏显示颜色过程中的问题,数据和像素值提取比较

软件使用步骤参考 数据数量问题 对于一个单层图片来说&#xff0c;可以分辨率可以使用像素的数量来描述。图片的长宽由多少像素组成就是所说的图片的长宽。这种说法也不太准确&#xff0c;一般人为分辨率越大&#xff0c;约清晰。这种认知是在同样长度中有更多像素&#xff0…

计算机毕业设计 助农产品采购平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

HDFS 原理和操作

目录 一、操作1. web工具2.命令行----常用命令3.Java APIJavaAPI创建HDFS目录&#xff0c;获取HDFS修改权限JavaAPI上传和下载数据使用JavaAPI获取HDFS元信息 二、HDFS原理解析1.数据上传2.数据下载 三、HDFS的高级特性1.回收站2.快照3.配额Quota4.安全模式5.权限管理命令行Jav…

Linux系统之部署俄罗斯方块网页小游戏(二)

Linux系统之部署俄罗斯方块网页小游戏(二) 一、小游戏介绍1.1 小游戏简介1.2 项目预览二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、检查本地环境3.1 检查系统版本3.2 检查系统内核版本3.3 检查软件源四、安装Apache24.1 安装Apache2软件4.2 启动apache2服务4.3 查看…

动态规划(二)——例题

目录 Help Jimmy 题目 解题思路 神奇的口袋 题目 枚举的解法 递归的解法 动态规划的解法 滑雪 题目 解题思路 解法一 解法二 Help Jimmy 题目 "Help Jimmy" 是在下图所示的场景上完成的游戏&#xff1a; 场景中包括多个长度和高度各不相同的平台。地面是…

使用ResMaskingNet情绪识别模型的预训练文件进行情绪识别

使用ResMaskingNet情绪识别模型的预训练文件进行情绪识别 前言&#xff1a;本文只介绍如何应用ResMaskingNet模型进行情绪识别应用&#xff0c;对于ResMaskingNet的模型架构以及训练过程并不做详细介绍 Paper:https://ieeexplore.ieee.org/document/9411919 Code:https://git…

【Redis学习 | 第1篇】Redis介绍+下载+服务启动与停止

文章目录 1. Redis介绍2. Redis入门2.1 Redis简介2.2 Redis下载2.3 Redis服务启动与停止2.4 redis设置密码2.5 redis 如何支持远程连接 1. Redis介绍 Redis是一个基于内存的 key-value 结构数据库。 基于内存存储&#xff0c;读写性能高适合存储热点数据&#xff08;热点商品、…

大厂进阶四:React源码解析之Fiber架构

本文主要内容&#xff1a; 1、React Concurrent 2、React15架构 3、React16架构 4、Fiber架构 5、任务调度循环和fiber构造循环区别 一、React Concurrent React在解决CPU卡顿是会用到React Concurrent的概念&#xff0c;它是React中的一个重要特性和模块&#xff0c;主要的…

Android Basis - 密钥和ID认证

书读百遍其义自现&#xff0c;知识点多复习&#xff0c;看到的越多&#xff0c;理解的也越是深刻。也许此时我看到的点是点&#xff0c;十天半个月之后回头看时可能就是新的点或者线了&#xff0c;写博客也是&#xff0c;越写越深刻。 遇到KeyAttestation在gms中的错误 在cts…

EVAL长度突破限制

目录 突破15位限制 代码 绕过方式 第一种&#xff08;使用echo执行&#xff09; 第二种&#xff08;使用file_get_content追加文件后进行问件包含&#xff09; 第三种&#xff08;使用usort可变长参数&#xff09; 突破7位限制 第一种&#xff08;可以使用>创建文件…

whistle非常好用的抓包工具

文档&#xff1a; https://wproxy.org/whistle/install.html 总结 这个工具的界面非常好理解&#xff0c;易于使用。 前端开发过程中&#xff0c;经常需要抓包看数据&#xff0c;mock请求数据&#xff0c;mock响应数据&#xff0c;代理线上资源等 这个工具统统可以满足 一、…

【C++二分查找 贪心】792. 匹配子序列的单词数

本文涉及的基础知识点 C二分查找 贪心 LeetCode792. 匹配子序列的单词数 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 。 字符串的 子序列 是从原始字符串中生成的新字符串&#xff0c;可以从中删去一些字符(可以是none)&#xff0c;而不改变其…

基于PCA-BP的数据多变量回归预测 Matlab代码(多输入单输出)[可显示原始特征贡献率+贡献率排序+累计贡献率]

基于PCA-BP的数据多变量回归预测 Matlab代码&#xff08;多输入单输出&#xff09;[可显示原始特征贡献率] 1.首先通过主成分分析PCA将数据进行降维&#xff0c;会显示原始特征对应的贡献率(不是贡献率排序&#xff0c;不会让你对应不到对应特征)&#xff0c;选取要求为累计贡…

RAG 系列之二:PDF 文件的解析

在 RAG&#xff08;检索增强生成&#xff09;简介的流程图中&#xff0c;有一个环节是检索向量数据库&#xff08;下图中红色框标识的部分&#xff09;。向量数据库存储了外部知识库经过向量化处理的内容。在检索之前&#xff0c;我们首先需要创建向量数据库&#xff0c;而创建…

虚拟化—XenServer安装教程详细(附客户端连接)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

积鼎 VirtualFlow 案例|高精度工程雾化模型,优化离心旋流喷嘴雾化效果

雾化喷嘴已广泛渗透于航空航天、车辆工程、医药制造、精密生产、食品加工、环境保护以及现代农业等众多工业领域&#xff0c;成为提升各行业生产效率与性能的关键工具。因此&#xff0c;雾化喷嘴的仿真技术显得尤为重要&#xff0c;通过准确模拟喷嘴的雾化过程&#xff0c;帮助…

idea项目注册在nacos错误:Cannot determine local hostname

一开始想把项目注册在nacos上&#xff0c;启动报错是这样的&#xff0c;而且yml文件也不生效&#xff0c;因为默认端口是8080&#xff0c;我在yml文件中写了8081没用&#xff0c;正好nacos的配置也在yml文件中。各种百度&#xff0c;各种依赖添加删除&#xff0c;反复启动没用 …

Redis7-分布式锁

目录 基本原理 分布式锁的实现 基于Redis的分布式锁 Redis分布式锁误删 分布式锁的原子性问题 基于Redis的分布式锁优化 Redission概述 Redisson入门 Redisson可重入锁原理 ​编辑 Reddisson锁重试和WatchDog机制 Redisson分布式锁原理 Redission的MultiLock原理 …

《江南:在爱开始的地方等你》定档9月15日,愿有情人终成眷属

由康锐原创小说《月落姑苏》改编&#xff0c;并由康锐导演、编剧&#xff0c;赖雨濛、刘冬沁领衔主演、朱丹妮、王沛为、金巧巧、阎青妤、李菁菁、苇青等共同主演的电影《江南&#xff1a;在爱开始的地方等你》官宣定档中秋。 影片讲述了陆骁&#xff08;刘冬沁饰&#xff09;…