Java 题解 | #乳牛研究成果评估#
乳牛研究成果评估
https://www.nowcoder.com/practice/00e2e90dd8a24e1695cee8c3cb339390
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param milk_production int整型一维数组 * @return int整型 */ public int cow_hp (int[] milk_production) { // write code here int n = milk_production.length; Arrays.sort(milk_production); // 按非递减顺序排序 int hp = 0; // 乳牛指数 for (int i = n - 1; i >= 0; --i) { int nValue = n - i; // 当前尝试的n值 if (milk_production[i] >= nValue) { hp = Math.max(hp, nValue); // 更新乳牛指数 } else { break; // 不满足条件,退出循环 } } return hp; } }
编程语言是Java。
该题考察的知识点是贪心算法。根据题目要求,需要找到一个乳牛指数,使得当乳牛的产奶量大于等于当前尝试的n值时,乳牛指数能够最大化。
代码的文字解释如下:
- 获取数组的长度变量
n
。 - 使用
Arrays.sort
对产奶量进行非递减排序。 - 变量
hp
,用于存储乳牛指数,初始化为0。 - 使用倒序循环遍历产奶量数组:从最大的产奶量开始判断,当前尝试的n值为 n - i,其中 i 是当前遍历的索引。如果当前产奶量大于等于当前尝试的n值,则更新乳牛指数为当前尝试的n值,并退出循环。
- 返回乳牛指数
hp
。