带最小值操作的栈 · Min Stack

[抄题]:

实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。

你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。

[思维问题]:

[一句话思路]:

用一个minstack来辅助实现

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. 主函数中,数据结构为类+名 类是Stack<Integer>
  2. minStack.empty() == true 或者isempty
  3. 取顶是.peek()
  4. pop分为两种情况:二者peak相等的、不相等的 minStack.pop(); 方法加点来用

[总结]:

[复杂度]:Time complexity: O() Space complexity: O()

[英文数据结构,为什么不用别的数据结构]:

[其他解法]:

[Follow Up]:

[题目变变变]:

原文地址:https://www.cnblogs.com/immiao0319/p/8241974.html

时间: 2024-11-16 04:01:23

带最小值操作的栈 · Min Stack的相关文章

lintcode 12 带最小值操作的栈

class MinStack { public: stack<int> num; stack<int> mins; MinStack() { // do intialization if necessary } /* * @param number: An integer * @return: nothing */ void push(int number) { // write your code here if( mins.size()==0 || mins.top() >

12 带最小值操作的栈

原题网址:https://www.lintcode.com/zh-cn/problem/min-stack/# 实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值. 你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成. 注意事项 如果堆栈中没有数字则不能进行min方法的调用 您在真实的面试中是否遇到过这个题? Yes 样例 如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1

[LintCode] 带最小值操作的栈

1 class MinStack { 2 public: 3 MinStack() { 4 // do initialization if necessary 5 } 6 7 void push(int number) { 8 // write your code here 9 if (minimum.empty() || number <= minimum.top()) 10 minimum.push(number); 11 data.push(number); 12 } 13 14 int

lintcode 中等题:Min stack 最小栈

题目 带最小值操作的栈 实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值. 你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成. 解题 可以定义一个数组或者其他的存储最小值,第i个元素,表示栈中前i个元素的最小值. 定义两个ArrayList来存储栈,一个ArrayList存储当前栈中的元素,一个ArrayList存储最小栈,并且其第i个元素表示栈中前i个元素的最小值,这样两个栈的长度是始终一样的 入栈:最小栈需要加入的元素是 当前要入的元

Stack操作,栈的操作。

栈是先进后出,后进先出的操作. 有点类似浏览器返回上一页的操作, public class Stack<E>extends Vector<E> 是vector的子类. 常用方法: boolean empty()           测试堆栈是否为空.  E peek() 查看堆栈顶部的对象,但不从堆栈中移除它.  E pop() 移除堆栈顶部的对象,并作为此函数的值返回该对象.  E push(E item) 把项压入堆栈顶部.  int search(Object o) 返回对象

[CareerCup] 3.2 Min Stack 最小栈

3.2 How would you design a stack which, in addition to push and pop, also has a function min which returns the minimum element? Push, pop and min should all operate in O(1) time. LeetCode上的原题,请参见我之前的博客Min Stack 最小栈.

[LintCode] Min Stack 最小栈

Implement a stack with min() function, which will return the smallest number in the stack. It should support push, pop and min operation all in O(1) cost. Notice min operation will never be called if there is no number in the stack. Have you met this

LeetCode算法题-Min Stack(Java实现)

这是悦乐书的第177次更新,第179篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第36题(顺位题号是155).设计一个支持push,pop,top和在恒定时间内检索最小元素的堆栈. push(x) - 将元素x推入堆栈. pop() - 删除堆栈顶部的元素. top() - 获取顶部元素. getMin() - 检索堆栈中的最小元素. 例如: MinStack minStack = new MinStack(); minStack.push(-2); minSta

2016.6.1——Min Stack

Min Stack 本题收获: 1.可以利用两个栈操作. 2.栈的基本操作. 题目: Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. push(x) -- Push element x onto stack. pop() -- Removes the element on top of the stack. top() -- Get the top