19 包含min函数的栈
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:一个栈存普通元素,一个最小栈存放目前位置最小的元素,只在压入的时候判断是否为空以及最小元素,其他情况正常处理。
class Solution { public: void push(int value) { s.push(value); if(minS.empty()){ minS.push(value); } else{ int num = minS.top() < value ? minS.top() : value; minS.push(num); } } void pop() { s.pop(); minS.pop(); } int top() { if(!s.empty()){ return s.top(); } return -1; } int min() { if(!minS.empty()){ return minS.top(); } return -1; } private: stack<int> s; stack<int> minS; };