考察的知识点:贪心;
解答方法分析:
- 使用
sort
函数对输入的milk_production
列表进行升序排序。 - 遍历排序后的列表,从小到大依次取出元素。
- 判断当前取出的元素是否大于等于剩余奶牛数量(列表长度减去当前位置的索引)。
- 如果当前元素满足条件,则返回剩余奶牛数量;否则继续遍历下一个元素。
- 如果遍历完所有的元素仍未返回,说明找不到适合条件的生命值,此时返回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; } };