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代码。
这道题考察的主要知识点包括:
- 数组排序
- 循环与迭代
以下是代码的文字解释:
- cow_hp 函数接受一个整数数组 milk_production 作为参数,表示牧场主的研究成果产生的乳量提升。
- 使用 Arrays.sort 对 milk_production 数组进行升序排序,以便能够更好地处理乳量提升。
- 初始化变量 cowIndex 用于存储乳牛指数的最大值,初始值设为0。
- 使用循环迭代处理每个研究成果的乳量提升。对于第 i 项成果,至少需要达到剩余未处理成果数目 n - i 的乳量提升。
- 如果当前成果产生的乳量提升大于等于当前可能的 n - i,那么更新乳牛指数 cowIndex 为当前可能的 n - i 和原指数中的较大值。
- 最终返回乳牛指数 cowIndex。