LeetCode 1431. Kids With the Greatest Number of Candies Java Solution

Problem
Kids With the Greatest Number of Candies - LeetCode
Approach
Algorithm
First, find the maximum value in the given array.
Traverse each element in the array, and for each kid, check if adding the extra candies makes their candy count greater than or equal to the maximum count.
If it is greater, add
true
to the result list, otherwise addfalse
.
There is no need to put
candy + extraCandies
inside parentheses in the if statement (if(candy + extraCandies < max)
). Java operator precedence will handle it correctly without the need for explicit grouping.The if statement can be replaced with the ternary operator:
result.add(candy + extraCandies >= max ? true : false);
References
What is Java Ternary Operator(?:)
Github Link
https://github.com/eunhanlee/LeetCode_1431_KidsWiththeGreatestNumberofCandies_Solution.git
Time Complexity: O(n), Space Complexity: O(n)
/**
* Determines whether each kid can have the maximum number of candies considering the extra candies.
*
* @param candies An integer array representing the number of candies each kid has.
* @param extraCandies The number of extra candies each kid can have.
* @return A list of booleans representing whether each kid can have the maximum number of candies.
*/
public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
// Find the maximum number of candies in the given array.
int max = 0;
for (int candy : candies) {
max = Math.max(max, candy);
}
// Check if each kid can have the maximum number of candies.
List<Boolean> result = new ArrayList<>(candies.length);
for (int candy : candies) {
// If adding the extra candies makes the current kid's candy count greater than or equal to the maximum count,
// consider them able to have the maximum number of candies.
result.add(candy + extraCandies >= max ? true : false);
}
return result;
}
Subscribe to my newsletter
Read articles from Han directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
