Array - searching

Administrator

Administrator

· 2 min read
Thumbnail

Kids With the Greatest Number of Candies

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

Solution

var kidsWithCandies = function(candies, extraCandies) {
    // Find the maximum number of candies among all kids
    const maxCandies = Math.max(...candies);
    
    // Create a boolean array to store the result
    const result = [];
    
    // Iterate through each kid's candies
    for (let i = 0; i < candies.length; i++) {
        // Check if the current kid can have the greatest number of candies
        // after receiving all the extra candies
        result.push((candies[i] + extraCandies) >= maxCandies);
    }
    
    return result;
};

// Test cases
const candies1 = [2, 3, 5, 1, 3];
const extraCandies1 = 3;
console.log(kidsWithCandies(candies1, extraCandies1)); // Output: [true, true, true, false, true]

const candies2 = [4, 2, 1, 1, 2];
const extraCandies2 = 1;
console.log(kidsWithCandies(candies2, extraCandies2)); // Output: [true, false, false, false, false]

const candies3 = [12, 1, 12];
const extraCandies3 = 10;
console.log(kidsWithCandies(candies3, extraCandies3)); // Output: [true, false, true]

Explanation:

  1. We first find the maximum number of candies among all kids using Math.max(...candies).
  2. Then, we iterate through each kid's candies using a for loop.
  3. For each kid, we check if adding the extraCandies to their current candies would make them have the greatest number of candies.
  4. We push true or false to the result array based on the comparison result.
  5. Finally, we return the result array.
Administrator

About Administrator

Admin - Frontendpedia

Copyright © 2024 Frontendpedia | Codeveloper Solutions LLP. All rights reserved.