设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈O(1)。

push(x) —— 将元素x推入栈中

pop() —— 删除栈顶的元素

top() —— 获取栈顶的元素

getMin() —— 检索栈中的最小元素

#include<bits/stdc++.h>using namespace std;stack<int>s,t;void push(int x)
{s.push(x);if(t.empty())t.push(x);elset.push(min(x,t.top()));
}void pop()
{if(!s.empty())s.pop();if(!t.empty())t.pop();
}int top()
{return s.top();
}int getMin()
{return t.top();
}int main()
{int n;scanf("%d",&n);for(int i = 1; i <= n; i ++){int t;scanf("%d",&t);push(t);}printf("%d",getMin());return 0;
}

#include<bits/stdc++.h>using namespace std;stack<int>s,t;void push(int x)
{s.push(x);if(t.empty())t.push(x);elset.push(min(x,t.top()));
}void pop()
{if(!s.empty())s.pop();if(!t.empty())t.pop();
}int top()
{return s.top();
}int getMin()
{return t.top();
}int main()
{int n;scanf("%d",&n);for(int i = 1; i <= n; i ++){string s;cin >> s;if(s.compare("push")==0){int a;scanf("%d",&a);push(a);}if(s.compare("pop")==0){pop();}if(s.compare("getMin")==0){printf("%d",getMin());}}return 0;
}

最小栈问题(空间换时间O(1)复杂度)相关推荐

  1. 以空间换时间——动态规划算法及其应用:矩阵链相乘

    动态规划算法是5大算法基础中最重要的一个,它专门用来解决平面世界下的应用,即会多次使用二维数组. 当然动态规划算法是空间换时间的算法,也就是说:我们可以利用空间资源来使某算法问题的时间复杂度降到最低. ...

  2. 空间换时间--编程小绝招解决电话区号识别算法问题

    空间换时间问题通常都是一个不大的问题里的一个不小的解决方案.首先要理解代码中函数的一个大致的代价,在输入比较固定,计算输出又比较费劲的时候,常常就是空间换时间发挥作用的时候了.通过几个简单的例子您就会 ...

  3. FPGA之道(62)时空变换之空间换时间

    文章目录 前言 时空变换之空间换时间 缓存提速使用 模块复制 同频模块复制 缓存降频复制 缓存降频使用 逻辑拆分 流水线 流水线的由来 如何在组合逻辑中使用流水线 如何在时序逻辑中使用流水线 顺序系统 ...

  4. leetcode-383-Ransom Note(以空间换时间)

    题目描述: Given an arbitrary ransom note string and another string containing letters from all the magaz ...

  5. 前端遍历导致查询数据时间过长_OLAP 服务器,空间换时间可行吗?

    [摘要] 全量预汇总真的是提高 OLAP 性能的可行方案吗?点击了解OLAP 服务器,空间换时间可行吗? 多维分析提供拖拽.旋转.切片.钻取等等人机交互操作,必须有秒级的响应速度.而这些操作对应的明细 ...

  6. 空间换时间,查表法的经典例子

    前言 上一篇分享了:C语言精华知识:表驱动法编程实践 这一篇再分享一个查表法经典的例子. 我们怎么衡量一个函数/代码块/算法的优劣呢?这需要从多个角度看待.本篇笔记我们先不考虑代码可读性.规范性.可移 ...

  7. [hashmap|空间换时间] leetcode 1 两数之和

    [hashmap|空间换时间] leetcode 1 两数之和 1.题目 题目链接 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下 ...

  8. ie浏览器查看vue中js_浅析 Vue.js 中那些空间换时间的操作

    Hello,各位小伙伴,接下来的一段时间里,我会把我的课程<Vue.js 3.0 核心源码解析>中问题的答案陆续在我的公众号发布,由于课程的问题大多数都是开放性的问题,所以我的答案也不一定 ...

  9. 空间换时间--程序策略

    这几天修改一个去年做的程序,因为程序使用了xml保存的一些数据,整个xml文件结构欠佳,所以每次都需要对数据进行读取运算重新组合才能使用. 朋友需要这个程序多加点功能,于是顺便把这个去年做的不太好的地 ...

最新文章

  1. Anaconda使用
  2. 射频领域中交调和互调的区别
  3. Php与mssql数据交互
  4. 了解mysql processlist_哪些MySQL processlist状态要引起关注
  5. visual studio code安装_Deepin系统中如何安装Visual Studio Code
  6. Flink WriteRedis
  7. 预训练新范式!为什么Prompt会更有效?
  8. shell之提取头文件
  9. 深度学习基础系列(六)| 权重初始化的选择
  10. ElasticSearch查询模板
  11. 1.7 COMS边沿触发器
  12. Chrome 管理搜索引擎
  13. ps手机计算机图标教程,ps制作手机图标的方法
  14. GameFramework框架 (一) 框架简介
  15. 【图论·习题】白银莲花池
  16. Data Structure - Pairing Heap (Java)
  17. concurrent.futures调研
  18. 通过语言包,让云豹短视频源码实现国际化运营
  19. 竞争学习神经网络详解
  20. R语言和Python连接hive

热门文章

  1. ANSYS meshing 生成的网格转到Openfoam中报错
  2. 操作系统μC/OS-Ⅱ读书笔记(2)
  3. RK3399处理器性能介绍
  4. 力扣:63. 不同路径 II
  5. 齐鲁理工学院计算机与科学,齐鲁理工学院学生在山东省大学生科技节斩获16项大奖...
  6. 中国高速动车组行业发展态势与十四五运营前景展望报告2022版
  7. 西门子V90伺服驱动器的面板控制
  8. 擦亮双眼,走出精明网贷投资的第一步
  9. 企业IPPBX有哪些功能
  10. Android 视频播放器:展示列表视频(HeartVideo)