class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param op string字符串vector * @param vals int整型vector<vector<>> * @return int整型vector */ set<int> max; vector<int> mcstack; void push(int id, int weight) { max.insert(weight); mcstack.push_back(weight); } int getMax() { //end()指向后一个元素之后,这里用rbegin return *max.rbegin(); } void pop() { max.erase(max.find(mcstack[mcstack.size() - 1])); mcstack.pop_back(); } int top() { return mcstack[mcstack.size()-1]; } vector<int> max_weight_cow(vector<string>& op, vector<vector<int> >& vals) { // write code here vector<int>res; int i = 0; for (auto x : op) { if (x == "MaxCowStack")res.push_back(-1); if (x == "pop") { res.push_back(-1); pop(); } if (x == "push") { push(vals[i][0], vals[i][1]); res.push_back(-1); } if (x == "getMax") res.push_back(getMax()); if (x == "top") res.push_back(top()); i++; } return res; }};