Categories
LeetCode

LeetCode 155. Min Stack (Java)

Source Url: https://leetcode-cn.com/problems/min-stack/

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.

Example:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> Returns -3.
minStack.pop();
minStack.top();      --> Returns 0.
minStack.getMin();   --> Returns -2.

My solution is simple, use a PriorityQueue, it is actually is a min-heap, combine it with a stack to make a min-stack.

Github:https://github.com/tinyfool/leetcode/tree/master/src/p0155

Other problems related to stack and queue, see also Stack and Queue Data Structure (Java code and Leetcode problems)

Want to know detail of heap and heapsort, check my post:Heap and Heap-Sort algorithm.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.