#include <algorithm>
#include <vector>
class Solution {
std::vector<int> data_;
std::vector<int> min_data_;
public:
void push(int value) {
data_.push_back(value);
if (min_data_.empty()) {
min_data_.push_back(value);
} else {
min_data_.push_back(std::min(value, min_data_.back()));
}
}
void pop() {
if (!min_data_.empty()) {
data_.pop_back();
min_data_.pop_back();
}
}
int top() {
if (data_.empty()) return -1;
return data_.back();
}
int min() {
return min_data_.back();
}
};

京公网安备 11010502036488号