Min Stack Problem

TopicDifficultyCompanies
Stack and Queue
EASY
Amazon
Microsoft
Yahoo
Adobe

You need to modify the design of the stack data structure such that it supports push()pop()top() and getMin() operations in constant time( O(1) ).

Problem Note:

  • top() gets the top element
  • getMin() returns the minimum element in the stack
  • push(elem) pushes an element elem in the stack
  • pop() removes the top element
  • It is guaranteed that input is consistent, i.e., only push() will be called if the stack is supposed to be empty
  • Kudos if you solve it using constant space!
  • The input provided in this case would be a series of function calls to push()pop()top() and getMin()

Example 1

Input:
st = minStack()
st.push(4)
st.push(2)
st.top() ---> returns 2
st.getMin() ---> returns 2
st.pop()
st.push(6)
st.getMin() ---> returns 4

Example 2

Input:
st = minStack()
st.push(-1)
st.push(5)
st.top() ---> returns 5
st.push(-4)
st.getMin() ---> returns -4
st.pop()
st.pop()
st.getMin() ---> returns -1

Code Editor

Practice and Learn

Best way to learn is through solving real problems. Practice this problem in this code editor.