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:
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;
}
댓글 없음:
댓글 쓰기