
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Min Stack in Python
Here we will see how to make a stack, that can perform push, pop, top, and retrieve the min element in constant time. So the functions will be push(x), pop(), top() and getMin()
To solve this, we will follow these steps −
- Initialize the stack by min element as infinity
- For push operation push(x)
- if x < min, then update min := x,
- push x into stack
- For pop operation pop()
- t := top element
- delete t from stack
- if t is min, then min := top element of the stack
- For top operation top()
- simply return the top element
- for getMin operation getMin()
- return the min element
Example
Let us see the following implementation to get better understanding −
class MinStack(object): min=float('inf') def __init__(self): self.min=float('inf') self.stack = [] def push(self, x): if x<=self.min: self.stack.append(self.min) self.min = x self.stack.append(x) def pop(self): t = self.stack[-1] self.stack.pop() if self.min == t: self.min = self.stack[-1] self.stack.pop() def top(self): return self.stack[-1] def getMin(self): return self.min m = MinStack() m.push(-2) m.push(0) m.push(-3) print(m.getMin()) m.pop() print(m.top()) print(m.getMin())
Input
m = MinStack() m.push(-2) m.push(0) m.push(-3) print(m.getMin()) m.pop() print(m.top()) print(m.getMin())
Output
-3 0 -2
Advertisements