最小栈问题(空间换时间O(1)复杂度)
设计一个支持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)复杂度)相关推荐
- 以空间换时间——动态规划算法及其应用:矩阵链相乘
动态规划算法是5大算法基础中最重要的一个,它专门用来解决平面世界下的应用,即会多次使用二维数组. 当然动态规划算法是空间换时间的算法,也就是说:我们可以利用空间资源来使某算法问题的时间复杂度降到最低. ...
- 空间换时间--编程小绝招解决电话区号识别算法问题
空间换时间问题通常都是一个不大的问题里的一个不小的解决方案.首先要理解代码中函数的一个大致的代价,在输入比较固定,计算输出又比较费劲的时候,常常就是空间换时间发挥作用的时候了.通过几个简单的例子您就会 ...
- FPGA之道(62)时空变换之空间换时间
文章目录 前言 时空变换之空间换时间 缓存提速使用 模块复制 同频模块复制 缓存降频复制 缓存降频使用 逻辑拆分 流水线 流水线的由来 如何在组合逻辑中使用流水线 如何在时序逻辑中使用流水线 顺序系统 ...
- leetcode-383-Ransom Note(以空间换时间)
题目描述: Given an arbitrary ransom note string and another string containing letters from all the magaz ...
- 前端遍历导致查询数据时间过长_OLAP 服务器,空间换时间可行吗?
[摘要] 全量预汇总真的是提高 OLAP 性能的可行方案吗?点击了解OLAP 服务器,空间换时间可行吗? 多维分析提供拖拽.旋转.切片.钻取等等人机交互操作,必须有秒级的响应速度.而这些操作对应的明细 ...
- 空间换时间,查表法的经典例子
前言 上一篇分享了:C语言精华知识:表驱动法编程实践 这一篇再分享一个查表法经典的例子. 我们怎么衡量一个函数/代码块/算法的优劣呢?这需要从多个角度看待.本篇笔记我们先不考虑代码可读性.规范性.可移 ...
- [hashmap|空间换时间] leetcode 1 两数之和
[hashmap|空间换时间] leetcode 1 两数之和 1.题目 题目链接 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下 ...
- ie浏览器查看vue中js_浅析 Vue.js 中那些空间换时间的操作
Hello,各位小伙伴,接下来的一段时间里,我会把我的课程<Vue.js 3.0 核心源码解析>中问题的答案陆续在我的公众号发布,由于课程的问题大多数都是开放性的问题,所以我的答案也不一定 ...
- 空间换时间--程序策略
这几天修改一个去年做的程序,因为程序使用了xml保存的一些数据,整个xml文件结构欠佳,所以每次都需要对数据进行读取运算重新组合才能使用. 朋友需要这个程序多加点功能,于是顺便把这个去年做的不太好的地 ...
最新文章
- Anaconda使用
- 射频领域中交调和互调的区别
- Php与mssql数据交互
- 了解mysql processlist_哪些MySQL processlist状态要引起关注
- visual studio code安装_Deepin系统中如何安装Visual Studio Code
- Flink WriteRedis
- 预训练新范式!为什么Prompt会更有效?
- shell之提取头文件
- 深度学习基础系列(六)| 权重初始化的选择
- ElasticSearch查询模板
- 1.7 COMS边沿触发器
- Chrome 管理搜索引擎
- ps手机计算机图标教程,ps制作手机图标的方法
- GameFramework框架 (一) 框架简介
- 【图论·习题】白银莲花池
- Data Structure - Pairing Heap (Java)
- concurrent.futures调研
- 通过语言包,让云豹短视频源码实现国际化运营
- 竞争学习神经网络详解
- R语言和Python连接hive