import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param milk_production int整型一维数组
     * @return int整型
     */
    public int cow_hp (int[] milk_production) {
        // write code here
        Arrays.sort(milk_production); // 将产量提升数组按升序排序
        int n = milk_production.length;

        int cowIndex = 0; // 初始化乳牛指数
        for (int i = 0; i < n; i++) {
            int currentN = n - i; // 当前可能的n值
            if (milk_production[i] >= currentN) {
                cowIndex = Math.max(cowIndex, currentN);
            }
        }

        return cowIndex;
    }
}

Java代码。

这道题考察的主要知识点包括:

  1. 数组排序
  2. 循环与迭代

以下是代码的文字解释:

  • cow_hp 函数接受一个整数数组 milk_production 作为参数,表示牧场主的研究成果产生的乳量提升。
  • 使用 Arrays.sort 对 milk_production 数组进行升序排序,以便能够更好地处理乳量提升。
  • 初始化变量 cowIndex 用于存储乳牛指数的最大值,初始值设为0。
  • 使用循环迭代处理每个研究成果的乳量提升。对于第 i 项成果,至少需要达到剩余未处理成果数目 n - i 的乳量提升。
  • 如果当前成果产生的乳量提升大于等于当前可能的 n - i,那么更新乳牛指数 cowIndex 为当前可能的 n - i 和原指数中的较大值。
  • 最终返回乳牛指数 cowIndex。