题目
分析
本题有“贪心”的思路:要用最少数量的牛叠加而达到暑假的高度,那么一定优先将身高最高的牛叠起来。所以,第一步是排序。
然后,本题中是要按照身高降序排序,而一般情况下sort(...)是升序排序。我们可以提供一个定制的cmp函数,但也可以在升序排序后(小到大),用reverse将整个数组反转。
sort(cows.begin(), cows.end());
reverse(cows.begin(), cows.end());
牛的身高排序完成后,我们在while循环中不断增加一头牛,直到它们的总高度超过了书架的高度。
int count = 0, current_height = 0;
while (current_height < shelf_height)
{
current_height += cows[count];
count++;
}
答案

思考
(略)
