当前位置: 首页 > news >正文

大根堆,小根堆,双指针

码蹄集OJ-大约

#include<bits/stdc++.h> 
using namespace std;
priority_queue<int>max2,maxDel;
priority_queue<int,vector<int>,std::greater<int>>min2,minDel;
const int N=1e5+1;
int n,result=0,a[N];
int main( )
{cin>>n;for(int i=1,j=1;i<=n;i++){cin>>a[i];max2.push(a[i]);min2.push(a[i]);while(max2.top()-min2.top()>1){maxDel.push(a[j]);minDel.push(a[j]);j++;while(!maxDel.empty() &&max2.top()==maxDel.top()){max2.pop();maxDel.pop();}while(!minDel.empty() &&min2.top()==minDel.top()){min2.pop();minDel.pop();}}   result=max(result,i-j+1);}cout<<result;return 0;
}

要想找到滑动窗口的最大值,想到运用双指针实现滑动窗口,运用大根堆小根堆求出每一个窗口的最大值,最小值。

大根堆小根堆的初始化:

priority_queue<int>max2,maxDel;
priority_queue<int,vector<int>,std::greater<int>>min2,minDel;

定义双指针i,j。i,j初始指向第一个元素,i依次向后遍历,同时加入到大根堆和小根堆中,将这两个堆头元素相减得到最大值减最小值。

当差值大于一时,循环的将j指针指向的数组值加入maxDel和minDel(因为不确定加入的值为多大),将j指针向后移一位。同时判断移除的数影响最大值还是最小值,如果影响最大值,则按照maxDel中数的多少pop出大根堆中的元素。最后输出结果为滑动窗口的最大值,滑动窗口的大小为i-j+1。

注意:在调用堆(类似队列)时一定要判空,因为在调用空队列时会报错。

http://www.dtcms.com/a/290752.html

相关文章:

  • ELN和LIMS的区别
  • 【LeetCode 热题 100】207. 课程表——DFS+三色标记
  • 原型设计模式
  • [Plecs基础知识系列] 基于Plecs的半导体热仿真方法(实战篇)_建立热路模型与仿真
  • 多能量CT扫描性能模体的详细讲解
  • 小飞电视:开启智能娱乐新视界
  • 优思学院:精益制造的工具与方法有什么区别?
  • 2025三掌柜赠书活动第二十五期 网络安全应急响应实战
  • Web3.0 能为你带来哪些实质性的 改变与突破
  • Web LLM 安全剖析:以间接提示注入为核心的攻击案例与防御体系
  • 2025年终端安全管理系统的全方位解析,桌面管理软件的分析
  • 在 Windows上用WSL和VSCode进行Linux开发环境配置
  • 解决OpenHarmony中找不到pthread_cancel和pthread_setcanceltype等libc符号的问题
  • python学智能算法(二十七)|SVM-拉格朗日函数求解上
  • SVM(Support Vector Machine)从入门到精通
  • 部署zabbox企业级分布式监控
  • 软件卸载:金山毒霸怎么卸载?【图文讲解】【小白专属】
  • freertos双向链表的插入
  • AI知识点——MCP
  • 如何使用终端查看任意Ubuntu的版本信息
  • 使用Langchain调用模型上下文协议 (MCP)服务
  • 中文分词模拟器 - 华为OD统一考试(Java 题解)
  • CS231n-2017 Lecture5神经网络笔记
  • 【Java EE初阶 --- 网络原理】应用层---HTTP(HTTPS)协议
  • 内网与外网是通过什么进行传输的?内外网文件传输的安全方法
  • Java从入门到精通 - 面向对象高级(三)
  • kafka 生产和消费 性能测试工具 kafka-producer-perf-test.sh kafka-consumer-perf-test.sh
  • kafka 生产消息和消费消息 kafka-console-producer.sh kafka-console-consumer.sh
  • Python 进阶(六): Word 基本操作
  • ROS 与 Ubuntu 版本的对应关系