Description

Kids With the Greatest Number of Candies - LeetCode

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.

Examples

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

Code

class Solution {
public:
	vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies){
		int size = candies.size();
		vector<bool> result(size);
		int max = *max_element(candies.begin(), candies.end());
		
		for (int i = 0; i < size; i++){
			result[i] = (candies[i] + extraCandies >= max);
		}
		
		return result;
	}
}

Approach

  1. Find the maximum value within the candies array

IMPORTANT

To find the maximum value in the candies array, we can use the C++ STL algorithm: max_element found here →

  1. For each kid, add the extra candies to see if they are greater than or equal to the maximum value and store the Boolean into the result
  2. Return the result array