包含min函数的栈
包含min函数的栈
http://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49
算是单调栈的应用?
用vector模拟栈
cur表示当前栈顶的位置
minn数组中每个位置保存前面加进来的数中的最小值,只要push数的时候维护一下就好了
class Solution { public: vector<int> minn; int cur = 0; vector<int> stack; void push(int value) { stack.push_back(value); cur++; if(cur == 1) minn.push_back(value); else minn[cur-1] = minn[cur-2] > value ? value : minn[cur-2]; } void pop() { if(cur == 0) return ; cur--; stack.pop_back(); minn.pop_back(); } int top() { return stack[cur-1]; } int min() { return minn[cur-1]; } };