
题目描述:
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
解题思路:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
class { public: void push(int value) { st.push(value); if(smin.empty()) smin.push(value); if(smin.top()>value) smin.push(value); } void pop() { if(smin.top()==st.top()) smin.pop(); st.pop(); } int top() { return st.top(); } int min() { return smin.top(); } private: stack<int> st; stack<int> smin; };
|
近期评论