LeetCode -- Min Stack

原创 2015年11月21日 10:20:25
题目描述:


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 element.
getMin() -- Retrieve the minimum element in the stack.


设计一个栈,要求获取最小值的时间复杂度为常数。


思路:
对变成语言类库内部的栈进行封装,维护使用一个最小值的成员即可。要注意的就是弹出栈的操作,如果栈中依然有值,需要求出当前最小值更新最小值;如果栈空,最小值设为空。


实现代码:


public class MinStack {
    private Stack<int> _stack ;
	private int? _min;
	public MinStack(){
		_stack = new Stack<int>();
	}
    public void Push(int x) {
        if(!_min.HasValue || x < _min){
			_min = x;
		}
		_stack.Push(x);
    }


    public void Pop() {
        var x = _stack.Pop();
		if (x == _min){
			if(_stack.Count > 0){
				_min = _stack.Min();
			}
			else{
				_min = null;
			}
		}
    }


    public int Top() {
        return _stack.Peek();
    }


    public int GetMin() {
        return _min.Value;
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[LeetCode]Min Stack,解题报告

目录目录 题目 思路1 AC代码 缺陷 思路2 AC代码题目 Design a stack that supports push, pop, top, and retrieving the min...

LeetCode 155.Min Stack

第155题.Min Stack 问题描述: Design a stack that supports push, pop, top, and retrieving the minimum eleme...

leetCode Min Stack解题分享

原题:https://oj.leetcode.com/problems/min-stack/ Design a stack that supports push, pop, top, and...

Leetcode-155. Min Stack

前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN...
  • mcf171
  • mcf171
  • 2016年11月03日 18:01
  • 120

leetcode--Min Stack

leetcode--Min Stack C++/Java

LeetCode OJ 155. Min Stack

LeetCode OJ 155. Min StackDescriptionDesign a stack that supports push, pop, top, and retrieving the...

【Leetcode】Min Stack

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. ...

【LeetCode-面试算法经典-Java实现】【155-Min Stack(最小栈)】

【155-Min Stack(最小栈)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Design a stack that supports push, pop, to...

【LeetCode】Min Stack 解题报告

【题目】 Design a stack that supports push, pop, top, and retrieving the minimum element in constant t...
  • ljiabin
  • ljiabin
  • 2014年11月10日 16:17
  • 17586

[C++]LeetCode: 26 Min Stack

题目:
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode -- Min Stack
举报原因:
原因补充:

(最多只允许输入30个字)