思路分析
只要存在一个方案就输出true,极端考虑,将额外的糖果全部分配给一个孩子,如果能让他的糖果数量不小于原来的最大值,那么就证明存在满足条件的方案。
代码实现
class Solution {
public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
int max = 0;
List<Boolean> ans = new ArrayList<Boolean>();
int i;
// 找出拥有最多的糖果数量
for (i = 0; i < candies.length; ++i){
if (candies[i] > max){
max = candies[i];
}
}
// 加上额外的糖果数后不小于最大值即表示存在方案
for (i = 0; i < candies.length; ++i){
if (candies[i] + extraCandies >= max){
ans.add(true);
}else{
ans.add(false);
}
}
return ans;
}
}