找一篇一个栈实现的题解还真不容易
class Solution {
public:
/**
* return a array which include all ans for op3
* @param op int整型vector<vector<>> operator
* @return int整型vector
*/
vector<int> getMinStack(vector<vector<int> >& op) {
// write code here
stack<int>s;
int Mi=0;
//为空 插入arr
//>=之前的最小值 插入Min_last + arr
vector<int>ans;
for(auto it:op) {
if(it[0]==1) {
if(s.empty()) {
s.push(it[1]);
Mi=it[1];
} else {
s.push(it[1]-Mi);
Mi=min(Mi,it[1]);
}
} else if(it[0]==2) {
if(s.size()==1)
;
else {
if(s.top()>=0) {
;
} else {
Mi-=s.top();
}
}
s.pop();
} else {
ans.push_back(Mi);
}
}
return ans;
}
};
京公网安备 11010502036488号