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

【C++】移动窗口

Tips:此程序经过优化,将进退栈整合为一次遍历。

#include <iostream>
#include <string>
#include <ctime>
#include <stack>
using namespace std;
struct MAXINSTACKint{stack<int>data;stack<int>max;stack<int>min;//void push(int num){if(!max.empty()){if(max.top()<=num){max.push(num);}}else max.push(num);if(!min.empty()){if(min.top()>=num){min.push(num);}}else min.push(num);data.push(num);}void pop(){if(max.top()==data.top())max.pop();if(min.top()==data.top())min.pop();data.pop();}bool empty(){return data.empty();}
};
struct MAINSTACK{MAXINSTACKint main_;stack<int> help_;//void push_and_pop(int a,int b){bool add=1;bool del=0;while(true){//cout<<main_.max.empty()<<endl;if(add==0&&del==1)break;if(main_.max.empty()){main_.max.push(a);add=0;break;}if(main_.max.top()<=a&&add){main_.max.push(a);add=0;continue;}if(main_.max.top()!=b||del){help_.push(main_.max.top());}else {//cout<<"del"<<endl;del=1;}main_.max.pop();}while(!help_.empty()){main_.max.push(help_.top());help_.pop();}}
};
int main(){int a[1010];MAINSTACK T;int n,k;cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<k;i++){T.push_and_pop(a[i],-1);}cout<<T.main_.max.top()<<endl;for(int i=k;i<n;i++){T.push_and_pop(a[i],a[i-k]);cout<<T.main_.max.top()<<endl;}return 0;
}

http://www.xdnf.cn/news/8727.html

相关文章:

  • Java中使用Stream API优化for循环
  • [NOIP 2003 普及组] 麦森数 Java
  • AI要掌握的知识
  • Python_day35 模型可视化与推理
  • Java 内存模型(JMM)深度解析:理解多线程内存可见性问题
  • 网页 CSS美化2(详解)
  • Reason-ModernColBERT论文速览:内存受限设置下深度对比学习批量大小的扩展
  • IDA插件 MIPSROP的安装和使用方法
  • 电子人的分水岭-FPGA模电和数电
  • 大模型智能体入门扫盲——基于camel的概述
  • 嵌入式<style>设计模式
  • DeepSeek 赋能数字农业:从智慧种植到产业升级的全链条革新
  • 可编程运动控制器行业2025数据分析报告
  • CodeBuddy实现图片水印添加工具
  • Ntfs!ReadIndexBuffer函数分析之根目录读取索引缓冲区的一个例子
  • STM32 USART串口通信
  • Nginx-详解(二)
  • SOC-ESP32S3部分:11-任务创建
  • 事务处理与事务隔离
  • uni-app(5):Vue3语法基础上
  • Eigen 直线拟合/曲线拟合/圆拟合/椭圆拟合
  • Kotlin MultiPlatform 跨平台版本的记账 App
  • 39-居住证管理系统(小程序)
  • NRM:快速切换 npm 镜像源的管理工具指南
  • C/C++---隐式显式转换
  • World of Warcraft [CLASSIC] 80 Hunter [Grandel] VS Onyxia
  • 什么是深度学习中的层次分类问题?
  • C++静态成员变量
  • 使用 AWK 分析 CSV 文件中的数据模式
  • C++ --- string