import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param op string字符串一维数组 * @param vals int整型二维数组 * @return int整型一维数组 */ class MaxCowStack { ArrayDeque<Integer> stk1 = new ArrayDeque<>(); public void pop() { stk1.pollFirst(); stk1.pollLast(); } public int top() { return stk1.peekFirst(); } public int getMax() { return stk1.peekLast(); } public void push(int val) { stk1.offerFirst(val); if (stk1.peekLast() <= val) { stk1.offerLast(val); } else { stk1.offerLast(stk1.peekLast()); } } } public int[] max_weight_cow (String[] op, int[][] vals) { // write code here int len = op.length; int[] values = new int[len]; MaxCowStack maxCow = new MaxCowStack(); for (int i = 0; i < len; ++i) { switch (op[i]) { case "MaxCowStack": values[i] = -1; break; case "push": maxCow.push(vals[i][1]); values[i] = -1; break; case "getMax": values[i] = maxCow.getMax(); break; case "pop": maxCow.pop(); values[i] = -1; break; case "top": values[i] = maxCow.top(); break; } } return values; } }