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.length2 <= n <= 1001 <= candies[i] <= 1001 <= extraCandies <= 50This approach iterates through each kid's candies and checks if adding the extraCandies to their current candies makes them equal to or greater than the maximum number of candies present initially. It involves finding the maximum candies first and then performing this computation.
The solution begins by finding the current maximum number of candies in the array candies. Then, it iterates through each kid's candies, adding extraCandies and comparing the sum to the maximum. If the sum is greater than or equal to the maximum, true is stored in the result, otherwise false is stored.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n), where n is the number of kids.
Space Complexity: O(1), not counting the output array.
This approach optimizes the process by combining the finding of the max candies and constructing the result array into a single pass by keeping track of the maximum with conditional updates.
This C solution works within two concise passes, determining the maximum candies in the first loop and checking the condition for each child in the second loop without re-evaluating the maximum.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n)
Space Complexity: O(1) aside from the result.
| Approach | Complexity |
|---|---|
| Brute Force Approach | Time Complexity: O(n), where n is the number of kids. |
| One-Pass Conditional Check | Time Complexity: O(n) |
leetcode 1431 solution ( Kids With the Greatest Number of Candies ) • Engineering Digest • 8,823 views views
Watch 9 more video solutions →Practice Kids With the Greatest Number of Candies with our built-in code editor and test cases.
Practice on FleetCode