c++runtime error单调栈
这里的原因是堆栈溢出,出现栈空并且pop()的操作,危险
下面这是错误的
while(s.top()<a){s.pop();
}
正确写法
while(s.top()<a){s.pop();if(s.empty()) break;
}
不知道为什么如下写法也会runtime error
while(s.top()<a&&s.size()!=0){s.pop();// if(s.empty()) break;
}
51Nod- 2160 数字游戏
链接点击
现在有n个数字依次进入一个栈,每个数字a进入栈的时候,如果栈顶元素小于a,则会将栈顶元素弹出,新的栈顶元素如果仍然小于a,则会将新的栈顶元素继续弹出,直到栈顶元素大于等于a为止,a才会加入栈。问n个数字依次进入后,最后栈里的数字依次是?
Input
输入第一行一个整数n(n<=100000),表示有n个数字依次进入栈。 接下来n行,每行一个整数,表示第i个数字。
Output
若干行,表示最后栈中的数字。
Sample Input
5
5
3
2
4
1
Sample Output
5
4
1
分析
用栈存,输出是用vector过度一下。
因为这次是从栈底开始输出。
AC代码
#include<iostream>
#include<stack>
#include<queue>
#include<vector>
using namespace std;
stack<int> s;
vector<int> vec;int main(){int n;cin>>n;int a;cin>>a;s.push(a);for(int i=0;i<n-1;i++){cin>>a;while(s.top()<a){s.pop();if(s.empty()) break; }s.push(a); }while(!s.empty()){vec.push_back(s.top());s.pop();}for(int i=vec.size()-1;i>=0;i--)cout<<vec[i]<<endl;
}
c++runtime error单调栈相关推荐
- leetcode 739. 每日温度 单调栈解法和暴力法及其优化 c代码
如题: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高, 请在该位置用 0 来代替.例如,给定一个列表 temperature ...
- 单调栈解木板倒水问题
循环操作每个木板,维护一个从栈底到栈顶单调递减的单调栈. 具体算法如下:先输入第i块木板的高度,然后标记下模板编号,记录到变量temp里.接着,temp依次和栈顶元素a比较,如果a的高度小于等于tem ...
- 第26期《Runtime Error可能产生的原因》
runtime error (运行时错误)就是程序运行到一半,程序就崩溃了. 比如说: ①除以零②数组越界:int a[3]; a[10000000]=10;③指针越界:int * p; p=(int ...
- Runtime Error可能产生的原因
runtime error (运行时错误)就是程序运行到一半,程序就崩溃了. 如: ①除以零 ②数组越界:int a[3]; a[10000000]=10; ③指针越界:int * p; p= ...
- 运行出错 runtime error
在网上查找和总结后记录了下面的解决方法. runtime error (运行时错误)就是程序运行到一半,程序就崩溃了. 比如说: ①除以零②数组越界:int a[3]; a[10000000]=10; ...
- 数据结构与算法:单调栈(monotonic stack)
文章目录 背景 小窍门 LeftBigger 例子 代码 LeftSmaller 例子 代码 RightBigger 例子 代码 RightSmaller 例子 代码 测试 LeetCode题目 背景 ...
- VJ runtime error可能的原因
自己刚开始在virtual judge上做题的时候,时不时会遇到runtime error的情况,因为不了解在线评测系统的报错方法,调试废了不少时间.在网上查找和总结后记录了下面的解决方法. runt ...
- Runtime error
runtime error(运行时错误)就是程序运行到一半,程序就崩溃了. 根据经验,大多数情况是因为程序员对内存的理解不透彻导致错误应用引起的,简单的说几个常见的: ①除以零的情况,比如1/0此类的 ...
- VJ Runtime Error(运行错误)
VJ Runtime Error可能原因 runtime error运行错误(代码运行不通过) 可能原因: 1.除数为0 2.数组越界(可能开小了,也可能边界问题) 3.指针越界 4.数组太大,超过栈 ...
最新文章
- epson机器人编程 范例_2019年机器人盘点(IREX篇)
- 一文读懂 Shell 中各种括号的作用
- 装载向导_麦德美爱法:异构集成时代的高阶封装载板金属化工艺
- sql表中只有子节点的递归_动态规划与静态规划、递归、分治、回溯
- html5结合css3,html5八大技术特征,与CSS3完美结合
- 加个ing是什么意思_take的意思竟然是“要求”?奇奇怪怪的熟词僻义打卡终于来了!...
- 操作系统时间片轮换_《操作系统_时间片轮转RR进程调度算法》
- AndroidStudio快捷键——打开最近编辑文件列表视图——(一)
- 编程中的那些容易迷糊的小知识
- js最简单的几个特效_腊八蒜最简单做法,掌握这几个诀窍快速变绿,又脆又香,真过瘾...
- Tensor的数据统计
- JavaScript学习笔记 1
- activity 流程编辑器_最好用的流程编辑器bpmnjs系列之Viewer
- 让划动 listview时 没有黑色背景
- win10搭建无盘服务器配置,win10系统无盘安装教程
- 北理乐学大学计算机实验报告,北理乐学实验六.doc
- 从WAVE头文件里获取压缩方式
- 失落世界服务器国庆宝箱位置,失落的斯菲尔 图文攻略 全剧情任务流程全宝箱收集...
- 华为Play 4T Pro批量添加联系人
- 【工程光学】几何光学基本定律成像概念
热门文章
- Leetcode: 4Sum
- World Final 2012
- 深入php内核一(概述)
- java多线程实现表复制_Java多线程的三种实现方式
- 1/r单中心双电子积分Li+
- html测试页,打印机测试页
- Java相对路径调用dll文件,VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)...
- SOPC第二课 新手易犯错误和小灯闪烁SOPC代码以及固化讲解
- BRCM5.02编译七:No package 'uuid' found
- 3.C#知识点:is和as