1431. Kids With the Greatest Number of Candies
Description
There are n
kids with candies. You are given an integer array candies
, where each candies[i]
represents the number of candies the ith
kid has, and an integer extraCandies
, denoting the number of extra candies that you have.
Return a boolean array result
of length n
, where result[i]
is true
if, after giving the ith
kid all the extraCandies
, they will have the greatest number of candies among all the kids, or false
otherwise.
Note that multiple kids can have the greatest number of candies.
Example 1:
Input: candies = [2,3,5,1,3], extraCandies = 3
Output: [true,true,true,false,true]
Explanation: If you give all extraCandies to:
- Kid 1, they will have 2 + 3 = 5 candies, which is the greatest among the kids.
- Kid 2, they will have 3 + 3 = 6 candies, which is the greatest among the kids.
- Kid 3, they will have 5 + 3 = 8 candies, which is the greatest among the kids.
- Kid 4, they will have 1 + 3 = 4 candies, which is not the greatest among the kids.
- Kid 5, they will have 3 + 3 = 6 candies, which is the greatest among the kids.
Example 2:
Input: candies = [4,2,1,1,2], extraCandies = 1
Output: [true,false,false,false,false]
Explanation: There is only 1 extra candy.
Kid 1 will always have the greatest number of candies, even if a different kid is given the extra candy.
Example 3:
Input: candies = [12,1,12], extraCandies = 10
Output: [true,false,true]
Constraints:
n == candies.length
2 <= n <= 100
1 <= candies[i] <= 100
1 <= extraCandies <= 50
My Solution
/**
* @param {number[]} candies
* @param {number} extraCandies
* @return {boolean[]}
*/
var kidsWithCandies = function(candies, extraCandies) {
// find the greatest number of candies
let greatest = Math.max(...candies);
// Check if each kid has the greatest number among the kids
let result = candies.map(candy => candy + extraCandies >= greatest);
return result;
};
Explanation
Find Greatest
: First, find the highest number of candies any kid has.Check Each Kid
: Look at how many candies each kid has.Add Extra
: Add the extra candies to each kid's current candies.Compare
: Check if, after adding the extra candies, a kid has as many or more candies than the kid with the most candies.Make a List
: Create a list where each entry is either true or false. True means that, with the extra candies, the kid could have the highest number of candies.Result
: Return the list showing which kids could have the most candies with the extra candies added.