剑指offer:包含min函数的栈

class Solution{
public:
stack<int> st;
stack<int> minSt;
void push( int value){
    if(st.size()==0 && minSt.size()==0) {
        st.push(value);
        minSt.push(value);}
    else{
        st.push(value);
        if(value<=minSt.top()){
            minSt.push(value);
        }
        else {
          minSt.push(minSt.top());
        }
    }
}
void pop(){
    st.pop();
    minSt.pop();
}
int top(){
    return st.top();

}
int min(){
    return minSt.top();
}


};

首先定义两个栈,一个st正常进栈出栈的;另一个minSt只有当值比它原来值小的时候才进栈;在进栈函数ing,如果两个栈都为空,那么就值正常进栈,如果不为空,st正常进栈,而minSt需要判断大小,小的进栈,大于的不进栈,保持原来的那个栈中元素;出栈函数就是两个栈都出栈,栈顶元素就st栈出;min函数就是minSt函数的top栈顶元素出栈!!!

#剑指offer#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务