#include <functional>
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param milk_production int整型vector
     * @return int整型
     */
    int cow_hp(vector<int>& milk_production) {
        // write code here
        sort(milk_production.begin(), milk_production.end());
        int n = milk_production.size();
        int ans;
        for (int i = 0; i < n; ++i) {
            if (milk_production[i] >= n - i) {
                ans = n - i;
                break;
            }
        }
        return ans;
    }
};

一、题目考察的知识点

贪心

二、题目解答方法的文字分析

先对数组进行排序得到一个升序数组

然后继续去遍历数组并且判断至少发现了 n 项研究成果,且每个成果产生的乳量提升至少是n公斤。

n-i就是包括当前牛以及后面牛的数量看看是否小于等于当前牛的乳量

三、本题解析所用的编程语言

c++