题目:
示例:
分析:
题目是简单题,也确实简单,不过示例给出的解释有些复杂,甚至有些误导.我们只需要遍历得出分配糖果之前的糖果最大值,然后再依次遍历每个孩子拥有的糖果数,若某孩子原有的糖果数加上待分配的所有糖果数大于等于分配前的糖果最大值,则给该孩子对应下标的结果置true.
结合分析我们可以写出以下代码.
class Solution {
public:vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies) {int MAX=candies[0];for(int c:candies) MAX=max(MAX,c); //找出未分配前,被拥有的最多的糖果数量vector<bool>res(candies.size(),false); //初始化结果为都不可以for(int i=0;i<candies.size();i++){//遍历每一个孩子,若是把全部糖果都给这个孩子后,//拥有的糖果数能大于等于未分配前的最大数,则将其置位true;if(candies[i]+extraCandies>=MAX) res[i]=true; }return res;}
};