Min Stack LeetCode solution in C++
1class MinStack {2public:3stack<int> stk;4stack<int> minstk;56MinStack() {7// leave empty because we don't need to initialise an object while it being8// created9}1011void push(int val) {12//---------------Push in original stack------------------------------13stk.push(val);14//-------Put always minimum element to MIN stack--------------15if (minstk.size() == 0)16minstk.push(val);17else {18if (minstk.top() < val)19minstk.push(minstk.top());20else21minstk.push(val);22}23}2425void pop() {26stk.pop();27minstk.pop();28}2930int top() {31return stk.top();32}3334int getMin() {35return minstk.top();36}37};