首页 > 试题广场 >

设计getMin功能的栈

[编程题]设计getMin功能的栈
  • 热度指数:15577 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
实现一个特殊功能的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。

每次输入 [1,*] 时,表示向栈中加入数字 * ,[2] 表示移除栈顶元素,[3] 表示输入栈中最小元素,添加最小元素到结果集中即可。

数据范围:操作数
要求:各操作的时间复杂度 ,空间复杂度
示例1

输入

[[1,3],[1,2],[1,1],[3],[2],[3]]

输出

[1,2]

说明

 操作分别是:向栈push3,向栈push2,向栈push1,此时从栈底到栈顶是[3,2,1]。获得最小值,此时是1。栈pop操作,此时栈底到栈顶是[3,2]。获得最小值,此时是2。  

备注:
有三种操作种类,op1表示push,op2表示pop,op3表示getMin。你需要返回和op3出现次数一样多的数组,表示每次getMin的答案

1<=操作总数<=1000000
-1000000<=每个操作数<=1000000
数据保证没有不合法的操作


头像 小洋芋热爱NLP
发表于 2021-02-04 18:39:46
- 1、题目描述: - 2、题目链接:https://www.nowcoder.com/practice/c623426af02d4c189f92f2a99647bd34?tpId=188&tqId=37556&rp=1&ru=%2Fta%2Fjob-code-high-w 展开全文
头像 LaN666
发表于 2020-12-06 16:57:46
1.两个栈,栈A入栈,栈B存储与栈A实时变化中最小的元素 import java.util.*; public class Solution { Stack<Integer> stackA = new Stack<>(); //入栈的值存放在这 Stack& 展开全文
头像 happypeople
发表于 2020-08-29 09:00:15
找一篇一个栈实现的题解还真不容易 class Solution { public: /** * return a array which include all ans for op3 * @param op int整型vector<vector<>&g 展开全文
头像 淘系前端校招能手
发表于 2020-10-25 22:07:21
设计一个普通的栈,还有一个存储着最小值的栈。每次push和pop时拿当前元素和栈顶比较,相应出栈进栈即可。 /** * return a array which include all ans for op3 * @param op int整型二维数组 operator * @return i 展开全文
头像 刘霖松
发表于 2021-03-25 17:07:40
class Solution { public: /** * return a array which include all ans for op3 * @param op int整型vector<vector<>> operator 展开全文
头像 悟空WK
发表于 2020-11-26 19:29:35
牛客题霸NC90设计getMin功能的栈Java题解https://www.nowcoder.com/practice/c623426af02d4c189f92f2a99647bd34?tpId=117&&tqId=35012&rp=1&ru=/ta/job-code 展开全文
头像 总之就是非常菜
发表于 2021-01-18 10:19:02
思路入栈和出栈操作用栈原有的push,pop就能实现,但是得到最小值需要一个数组遍历栈中的所有值,再排序取出最小值存入结果数组。代码 public int[] getMinStack (int[][] op) { // write code here ArrayList<Int 展开全文
头像 守护可爱多
发表于 2021-06-09 21:12:26
一个数据栈data,一个最小值栈min vector<int> getMinStack(vector<vector<int> >& op) { // write code here stack<int>data; 展开全文
头像 牛客4913417
发表于 2021-02-14 19:35:39
public int[] getMinStack (int[][] op) { // write code here Stack<Integer> stack1 = new Stack<>(); Stack<Integer 展开全文
头像 要成为超级兵的小兵
发表于 2021-04-04 23:19:27
class Solution { public: /** [[1,3],[1,2],[1,1],[3],[2],[3]] * 数组第一个代表操作,1==push,2==pop,2==getMin * 所以 1出现时,后面需要接push的数字 * 把所 展开全文