考察的知识点:贪心;

解答方法分析:

  1. 使用sort函数对输入的milk_production列表进行升序排序。
  2. 遍历排序后的列表,从小到大依次取出元素。
  3. 判断当前取出的元素是否大于等于剩余奶牛数量(列表长度减去当前位置的索引)。
  4. 如果当前元素满足条件,则返回剩余奶牛数量;否则继续遍历下一个元素。
  5. 如果遍历完所有的元素仍未返回,说明找不到适合条件的生命值,此时返回0。

所用编程语言:C++;

完整编程代码:↓

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