这里的原因是堆栈溢出,出现栈空并且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单调栈相关推荐

  1. leetcode 739. 每日温度 单调栈解法和暴力法及其优化 c代码

    如题: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高, 请在该位置用 0 来代替.例如,给定一个列表 temperature ...

  2. 单调栈解木板倒水问题

    循环操作每个木板,维护一个从栈底到栈顶单调递减的单调栈. 具体算法如下:先输入第i块木板的高度,然后标记下模板编号,记录到变量temp里.接着,temp依次和栈顶元素a比较,如果a的高度小于等于tem ...

  3. 第26期《Runtime Error可能产生的原因》

    runtime error (运行时错误)就是程序运行到一半,程序就崩溃了. 比如说: ①除以零②数组越界:int a[3]; a[10000000]=10;③指针越界:int * p; p=(int ...

  4. Runtime Error可能产生的原因

    runtime error (运行时错误)就是程序运行到一半,程序就崩溃了. 如: ①除以零   ②数组越界:int a[3]; a[10000000]=10;   ③指针越界:int * p; p= ...

  5. 运行出错 runtime error

    在网上查找和总结后记录了下面的解决方法. runtime error (运行时错误)就是程序运行到一半,程序就崩溃了. 比如说: ①除以零②数组越界:int a[3]; a[10000000]=10; ...

  6. 数据结构与算法:单调栈(monotonic stack)

    文章目录 背景 小窍门 LeftBigger 例子 代码 LeftSmaller 例子 代码 RightBigger 例子 代码 RightSmaller 例子 代码 测试 LeetCode题目 背景 ...

  7. VJ runtime error可能的原因

    自己刚开始在virtual judge上做题的时候,时不时会遇到runtime error的情况,因为不了解在线评测系统的报错方法,调试废了不少时间.在网上查找和总结后记录了下面的解决方法. runt ...

  8. Runtime error

    runtime error(运行时错误)就是程序运行到一半,程序就崩溃了. 根据经验,大多数情况是因为程序员对内存的理解不透彻导致错误应用引起的,简单的说几个常见的: ①除以零的情况,比如1/0此类的 ...

  9. VJ Runtime Error(运行错误)

    VJ Runtime Error可能原因 runtime error运行错误(代码运行不通过) 可能原因: 1.除数为0 2.数组越界(可能开小了,也可能边界问题) 3.指针越界 4.数组太大,超过栈 ...

最新文章

  1. epson机器人编程 范例_2019年机器人盘点(IREX篇)
  2. 一文读懂 Shell 中各种括号的作用
  3. 装载向导_麦德美爱法:异构集成时代的高阶封装载板金属化工艺
  4. sql表中只有子节点的递归_动态规划与静态规划、递归、分治、回溯
  5. html5结合css3,html5八大技术特征,与CSS3完美结合
  6. 加个ing是什么意思_take的意思竟然是“要求”?奇奇怪怪的熟词僻义打卡终于来了!...
  7. 操作系统时间片轮换_《操作系统_时间片轮转RR进程调度算法》
  8. AndroidStudio快捷键——打开最近编辑文件列表视图——(一)
  9. 编程中的那些容易迷糊的小知识
  10. js最简单的几个特效_腊八蒜最简单做法,掌握这几个诀窍快速变绿,又脆又香,真过瘾...
  11. Tensor的数据统计
  12. JavaScript学习笔记 1
  13. activity 流程编辑器_最好用的流程编辑器bpmnjs系列之Viewer
  14. 让划动 listview时 没有黑色背景
  15. win10搭建无盘服务器配置,win10系统无盘安装教程
  16. 北理乐学大学计算机实验报告,北理乐学实验六.doc
  17. 从WAVE头文件里获取压缩方式
  18. 失落世界服务器国庆宝箱位置,失落的斯菲尔 图文攻略 全剧情任务流程全宝箱收集...
  19. 华为Play 4T Pro批量添加联系人
  20. 【工程光学】几何光学基本定律成像概念

热门文章

  1. Leetcode: 4Sum
  2. World Final 2012
  3. 深入php内核一(概述)
  4. java多线程实现表复制_Java多线程的三种实现方式
  5. 1/r单中心双电子积分Li+
  6. html测试页,打印机测试页
  7. Java相对路径调用dll文件,VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)...
  8. SOPC第二课 新手易犯错误和小灯闪烁SOPC代码以及固化讲解
  9. BRCM5.02编译七:No package 'uuid' found
  10. 3.C#知识点:is和as