07.STL单调栈

单调栈的特点:

1.自顶向下一次递增,也就是上小下大的栈

单调栈代码:

算法思想:将不符合单调栈性质的弹出,符合的输入

#include<iostream>
#include <stack>
#include<queue>
using  namespace std;
void text01(){int a[]={5,2,1,3,4};stack<int> stk;for(int i=0;i<5;i++){//while循环,将不符合单调栈性质的元素依次弹出while(!stk.empty()&&a[i]>=stk.top()){stk.pop();}//循环后,要么时栈空,要么是input<top(),都应该入栈
//        if(stk.empty()) stk.push(a[i]);
//        else if(a[i]<stk.top()) stk.push(a[i]);stk.push(a[i]); }
}
int main() {text01();return 0;
}

单调栈的应用:

1.题目符合单调栈,自定向下一次递增性质的习题

2.笛卡尔树(基于单调栈、查询右链)

习题:P2947 [USACO09MAR] Look Up S(奶牛仰望对象)

法一:数组双重for循环

但是会超时,因为给的数据最大时1e5,双重循环时1e10,超时边缘时1e7,所以肯定会超时

#include<iostream>
#include<queue>
using  namespace std;
const int N=1e5+10;
int a[N],n;
void text01(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){bool flag=false;for(int j=i+1;j<=n;j++){if(a[i]<a[j]){flag=true;cout<<j<<endl;break;}}if(!flag) cout<<"0"<<endl;}
}
int main() {text01();return 0;
}

法二:利用单调栈

#include<iostream>
#include <stack>
#include<queue>
using  namespace std;
const int N=1e5+10;
int h[N],n,a[N];
void text01(){cin>>n;for(int i=1;i<=n;i++){cin>>h[i];}stack<int> stk;for(int i=n;i>=1;i--){//while循环,将不符合单调栈性质的元素依次弹出while(!stk.empty()&&h[i]>=h[stk.top()]){stk.pop();}if(stk.empty()){a[i]=0;stk.push(i);}else{a[i]=stk.top();stk.push(i);}}for(int i=1;i<=n;i++){cout<<a[i]<<endl;}
}
int main() {text01();return 0;
}

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

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

相关文章

如何修改docker容器的端口映射

要修改 Docker 容器的端口映射&#xff0c;你需要停止并删除现有的容器&#xff0c;然后使用新的端口映射重新运行容器。以下是详细步骤&#xff1a; 停止容器&#xff1a; 使用 docker stop 命令停止正在运行的容器。替换 <container_id> 为你要停止的容器的 ID 或者容器…

什么是智慧公厕?智慧公厕是基于“云大脑”的跨区域公共厕所综合管理系统

在城市快速发展的今天&#xff0c;公共厕所的管理和维护成为了一个重要的问题。传统的公共厕所管理方式往往效率低下、成本较高。然而&#xff0c;随着科技的进步和应用&#xff0c;智慧公厕已经成为了解决这一难题的利器。本文以智慧公厕源头厂家广州中期科技有限公司&#xf…

265.【华为OD机试真题】最长的指定瑕疵度的元音子串(滑动窗口算法-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-最长的指定瑕疵度的元音子串二.解题思路三.题解…

信息安全工程师 软考回顾(一)

&#x1f433;概述 图源&#xff1a;文心一言 信息安全证书已经考了一年有余&#xff0c;尽管我目前没有从业安全的打算&#xff0c;况且自己的实践能力与从业标准依然有所差距&#xff0c;但其中的内容也值得再温习一遍~&#x1f95d;&#x1f95d; 另外&#xff0c;如果你对…

四、深入学习TensorRT,Developer Guide篇(三)

上一篇文章我们一起看了下TensorRT有哪些特性或者支持哪些功能&#xff0c;这一节我们来详细的从API出发研究一下具体的实现&#xff0c;难度要上升了哦&#xff0c;请系好安全带&#xff0c;准备发车&#xff01; 文章目录 3. The C API3.1 The Build Phase3.1.1 Creating a …

常见消息中间件分享

文章目录 概念核心角色作用&使用场景应用解耦异步通信削峰填谷大数据流处理 使用模型点对点模型发布-订阅模型 常见消息中间件介绍一、kafka二、RabbitMQ三、RocketMQ 比较一、Kafka如何实现高吞吐量二、RocketMQ如何实现事务消息 概念 消息中间件是基于队列与消息传递技术…

C语言----------最后一个单词的大小

1.计算字符串最后一个单词的长度&#xff0c;单词以空格隔开&#xff0c;字符串长度小于5000。&#xff08;注&#xff1a;字符串末尾不以空格为结尾&#xff09; #include <stdio.h> #include<string.h> int main() {char arr[5000];gets(arr);int len strlen(a…

探索NFC技术在游戏玩具娱乐,医疗保健和穿戴设备领域的三大应用

NFC是与众不同的无线技术。这意味着它只能在两个设备相近时起作用。在其他用无线技术随机广播的方式以被接收时&#xff0c;NFC更重要的独特之处于其使用电源的方式。或者&#xff0c;更确切地说&#xff0c;它可以在不供电的环境下进行工作。它是一种非接触式智能卡技术的演进…

python3调用阿里云openapi脚本 - 生产环境

alicloud openapi 调用 - python 场景描述注意事项脚本如下场景描述 在各公司都在降本增效的前提下,可能更多的公司会选择性使用云服务器,这样相比较而言,对后续的服务器维护、产品使用来说,创造出更多便捷的方式,云服务也给我们带来了更多的便捷性,下面是从阿里云上摘抄…

QItemDelegate

一、简介 二、使用 QItemDelegate 的基本步骤 2.1、创建 Item 视图和模型 2.2、创建自定义的委托类 2.3、应用委托类到 Item 视图 三、实例&#xff1a;定制化 Item 视图 一、简介 当我们需要在 Qt 应用程序中自定义 Item 视图的外观和交互行为时&#xff0c;QIt…

spring-security 过滤器

spring-security过滤器 版本信息过滤器配置过滤器配置相关类图过滤器加载过程创建 HttpSecurity Bean 对象创建过滤器 过滤器作用ExceptionTranslationFilter 自定义过滤器 本章介绍 spring-security 过滤器配置类 HttpSecurity&#xff0c;过滤器加载过程&#xff0c;自定义过…

LeetCode23.合并K个升序链表

题目 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 &#xff1a; 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xff1a;链表数组如下&…

Centos stream9 环境使用脚本部署LAMP,实现wordpress

本人将所需要的rpm包都下载完成之后&#xff0c;直接使用脚本的形式安装。 如果需要自己下载rpm包的话&#xff0c;请下载如下包 yum install -y libxml2-devel \ tar \ gcc \ expat-devel \ bzip2-devel \ pcre-devel \ openssl-devel \ perl-devel \ sqlite-devel \ libcur…

计算机服务器中了devos勒索病毒怎么办?Devos勒索病毒解密数据恢复

网络技术的不断发展与更新&#xff0c;为企业的生产运营提供了有利保障&#xff0c;企业的生产运营离不开数据支撑&#xff0c;通过企业数据可以综合调整发展运营方向&#xff0c;但网络是一把双刃剑&#xff0c;近期&#xff0c;云天数据恢复中心接到许多企业的求助&#xff0…

32.仿简道云公式函数实战-数学函数-MOD

1. MOD函数 返回两数相除的余数。 结果的符号与除数相同。 2. 函数用法 MOD(number, divisor) 3. 函数示例 返回两数相除的余数。 结果的符号与除数相同。 number: 必需。 要计算余数的被除数。 divisor: 必需。 除数。 4. 代码实战 首先我们在function包下创建math包…

Android 7.0以上charles无法抓取部分https包问题

首先保证配置一切正确 手机通过访问chls.pro/ssl下载.pem证书&#xff0c;如无法安装&#xff0c;在文件管理器中将后缀名改为.crt 在设置中安装该证书 Charles-Proxy - SSL Proxying Setting - Include 添加需要抓包的URL:443即可 以上基本配置结束后&#xff0c;看下代码 代…

vue实时监控视频播放的进度,并在播放80%位置触发相应操作

video标签&#xff1a;播放时触发canplay事件 <video:src"filePath"controlsv-if"filePrefix mp4 || filePrefix avi"canplay"getVideoDur()"id"myVideo"class"preview"></video>canplay触发的方法&#xff…

w28DVWA-csrf实例

DVWA-csrf实例 low级别 修改密码&#xff1a;修改的密码通过get请求&#xff0c;暴露在url上。 写一个简单的html文件&#xff0c;里面伪装修改密码的文字&#xff0c;代码如下&#xff1a; <html><body><a href"http://dvwa:7001/vulnerabilities/csr…

苍穹外卖学习-----2024/02/21

1.新增员工 /*** 处理SQL异常* param sqlIntegrityConstraintViolationException* return*/ExceptionHandlerpublic Result exceptionHandler(SQLIntegrityConstraintViolationException sqlIntegrityConstraintViolationException){//String message sqlIntegrityConstraintV…

SHERlocked93 的 2017 年终总结

回家的路上有点无聊&#xff0c;简短回顾一下2017年的得失收获 开始两个月3月到5月用C#完结了一个烂尾的wpf小项目&#xff0c;对自己前半年的.net生涯也算是一个句号&#xff08;虽然不知道最后有没有采用&#xff09;&#xff0c;后面由于项目组转变技术栈&#xff0c;选择了…