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
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务