From 15557256808bee9db357d4d3eefc2c129b4320a3 Mon Sep 17 00:00:00 2001 From: Abiral jain <134861989+Abiral-2724@users.noreply.github.com> Date: Fri, 27 Oct 2023 13:22:02 +0530 Subject: [PATCH] Create Q1-Mini Stack - Flipkart --- Q1-Mini Stack - Flipkart | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Q1-Mini Stack - Flipkart diff --git a/Q1-Mini Stack - Flipkart b/Q1-Mini Stack - Flipkart new file mode 100644 index 0000000..6b8d0db --- /dev/null +++ b/Q1-Mini Stack - Flipkart @@ -0,0 +1,50 @@ +#include +#include + +class MinStack { +private: + std::stack mainStack; + std::stack minStack; + +public: + MinStack() { + } + + void push(int val) { + mainStack.push(val); + if (minStack.empty() || val <= minStack.top()) { + minStack.push(val); + } + } + + void pop() { + if (mainStack.top() == minStack.top()) { + minStack.pop(); + } + mainStack.pop(); + } + + int top() { + return mainStack.top(); + } + + int getMin() { + return minStack.top(); + } +}; + +int main() { + MinStack minStack; + minStack.push(-2); + minStack.push(0); + minStack.push(-3); + + std::cout << "Minimum element: " << minStack.getMin() << std::endl; // Output: -3 + + minStack.pop(); + std::cout << "Top element: " << minStack.top() << std::endl; // Output: 0 + + std::cout << "Minimum element: " << minStack.getMin() << std::endl; // Output: -2 + + return 0; +}