Leetcode
1431. Kids With the Greatest Number of Candies

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

  1. Find Greatest: First, find the highest number of candies any kid has.
  2. Check Each Kid: Look at how many candies each kid has.
  3. Add Extra: Add the extra candies to each kid's current candies.
  4. Compare: Check if, after adding the extra candies, a kid has as many or more candies than the kid with the most candies.
  5. 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.
  6. Result: Return the list showing which kids could have the most candies with the extra candies added.