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.length2 <= n <= 1001 <= candies[i] <= 1001 <= 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
- Find the maximum value within the
candiesarray
IMPORTANT
To find the maximum value in the candies array, we can use the C++ STL algorithm:
max_elementfound here →
- 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 - Return the result array