JZ20 包含min函数的栈

本文最后更新于:2022年4月9日 中午

image-20211006111254483

Solution

  • 另外用一个栈保存最小值,或者每次压栈/退栈两次
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public:
stack<int> normal, minVal;
void push(int value) {
normal.push(value);
if (!minVal.empty()) {
int tmp = minVal.top() > value ? value : minVal.top();
minVal.push(tmp);
} else {
minVal.push(value);
}
}
void pop() {
normal.pop();
minVal.pop();
}
int top() {
return normal.top();
}
int min() {
return minVal.top();
}
};

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!