Java 题解 | #最大体重的牛#

最大体重的牛

https://www.nowcoder.com/practice/0333d46aec0b4711baebfeb4725cb4de

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param op string字符串一维数组
     * @param vals int整型二维数组
     * @return int整型一维数组
     */
    public int[] max_weight_cow (String[] op, int[][] vals) {
        // write code here
        int[] res = new int[op.length];
        Stack<Integer> s = new Stack<>();
        int[] v = new int[op.length];
        int size = 0;

        for (int i = 0; i < op.length; i++) {
            if (op[i].equals("push")) {
                s.push(vals[i][1]);
                v[size] = vals[i][1];
                size++;
                Arrays.sort(v, 0, size);
                res[i] = -1;
            } else if (op[i].equals("pop")) {
                int idx = 0;
                for (int j = 0; j < size; j++) {
                    if (v[j] == s.peek()) {
                        idx = j;
                        break;
                    }
                }
                System.arraycopy(v, idx + 1, v, idx, size - idx - 1);
                size--;
                s.pop();
                res[i] = -1;
            } else if (op[i].equals("getMax")) {
                res[i] = v[size - 1];
            } else if (op[i].equals("top")) {
                res[i] = s.peek();
            } else {
                res[i] = -1;
            }
        }

        return res;
    }
}

这段代码使用的编程语言是Java。

主要考察的知识点包括:

  1. 数组和列表的使用:使用数组和列表存储操作和数值。
  2. 栈的实现和操作:使用栈来模拟压栈和弹栈操作。
  3. 排序算法的应用:使用排序算法对列表进行排序,以获取最大值。
  4. 条件语句和循环语句的运用:根据不同的操作类型执行相应的操作。
  5. 数组的复制和移动:使用 System.arraycopy 方法来移动数组元素。

代码的文字解释大纲如下:

  1. 定义一个 Solution 类,其中包含一个 max_weight_cow 方法,用于执行一系列操作并返回结果数组。
  2. 在方法中,创建一个栈对象和大小相同的数组来存储元素值。
  3. 遍历操作数组,根据不同的操作类型执行相应的操作。如果是 "push" 操作:将值压入栈对象和数组末尾。增加数组大小,将数组排序,设置结果为 -1。如果是 "pop" 操作:找到栈顶元素在数组中的索引。使用 System.arraycopy 方法将栈顶元素之后的元素左移一位。减小数组大小,弹出栈顶元素,设置结果为 -1。如果是 "getMax" 操作:将数组的最后一个元素设置为结果。如果是 "top" 操作:将栈顶元素设置为结果。其他情况下,将结果设置为 -1。
  4. 返回结果数组。
全部评论

相关推荐

11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 10:46
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务