题解 | #包含min函数的栈#

包含min函数的栈

https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49

class Solution {
public:
    void push(int value) {
        stack1.push(value);
    }
    void pop() {
        stack1.pop();
    }
    int top() {
        return stack1.top();
    }
    int min() {
	  	// 记录当前栈的长度
        int len = stack1.size();
        int res = stack1.top();
	  	// 记录逆序栈
        int arr[len];
        for(int i = 0; i < len; i++) {
            int element = stack1.top();
            if(res > element) {
                res = element;
            }
            arr[i] = element;
            stack1.pop();
        }
	  	// 数组逆序还原栈
        for(int i = (sizeof(arr)/sizeof(arr[0]) - 1) ; i >= 0; i--) {
            push(arr[i]);
        }
        return res;
    }

private:
    stack<int> stack1;  
};

全部评论

相关推荐

你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务