2 minute read

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]

/**
 * @param {number[]} candies
 * @param {number} extraCandies
 * @return {boolean[]}
 */
var kidsWithCandies = function (candies, extraCandies) {
  let maxNum = Math.max(...candies);
  for (let i = 0; i < candies.length; i++) {
    candies[i] = maxNum <= candies[i] + extraCandies;
  }
  return candies;
};

let maxNum = Math.max(...candies): Find the maximum number of candies among all kids by using the Math.max function with the spread operator ...candies. This will give us the maximum number of candies available.

for (let i = 0; i < candies.length; i++) {: Start a loop that iterates over each element in the candies array.

candies[i] = maxNum <= (candies[i] + extraCandies): For each kid (at index i), check if adding extraCandies to their current number of candies results in a number greater than or equal to the maximum number of candies (maxNum). The result of this comparison (a boolean) is stored in the candies array at index i.

return candies: Return the modified candies array, which now contains boolean values indicating whether each kid can have the maximum number of candies or not

Leave a comment