题目描述
给你一个数组 candies 和一个整数 extraCandies,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。
对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。
示例:
略。
提示:
略。
来源: LeetCode
思路
题目和示例比较长,猛地一看觉得挺复杂。但仔细一想,要想让某个孩子糖果最多,最彻底的办法就是把所有额外糖果全给他,如果这样他还不能最多,那就没办法 了。
所以,先找出现有糖果最多的数目,再遍历一次,把每个孩子都加上全部额外糖果,如果加上之后能大于等于现有最多,即存在方案。
解法
/**
* @param {number[]} candies
* @param {number} extraCandies
* @return {boolean[]}
*/
const kidsWithCandies = (candies, extraCandies) => {
const max = Math.max(...candies);
return candies.map(count => count + extraCandies >= max);
};