1431. Kids With the Greatest Number of Candies

김견지·2025년 3월 27일
0

LeetCode

목록 보기
6/13
post-thumbnail

Submission Link

Question

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.length
2 <= n <= 100
1 <= candies[i] <= 100
1 <= extraCandies <= 50

My Solutioin

Code

class Solution:
    def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]:
        max_num = max(candies)
        result = list(candy + extraCandies >= max_num for candy in candies)
        return result

Among logics with O(N), tried to do as less operations as possible.
So considered a method that
1. don't need another list
2. don't + extraCandies and revoke it

Feedback

Better Solution?

lightest Sol.

class Solution:
    def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]:
        maxCandy = max(candies)
        result = [True if candies[i]+extraCandies>=maxCandy else False for i in range(len(candies))]
        return result

Is range(len(List)) better than List iteration??

Comment

Quite satisfied with my answer this time lol
but I still don't know why lighter solutions are lighter.

profile
ML Engineer / Autonomous driving

1개의 댓글

comment-user-thumbnail
2025년 5월 8일

Kids with the greatest coloring skills often shine through their creativity and imagination. By engaging in seasonal coloring activities they learn to express themselves with colors that reflect the changing seasons. These activities, such as coloring autumn leaves, winter snowflakes, or spring flowers, help develop fine motor skills and an appreciation for nature. Through such exercises, kids not only enhance their artistic abilities but also learn to recognize patterns, shades, and hues associated with different times of the year. It’s a wonderful way for children to explore the world of colors while having fun and celebrating the seasons!

답글 달기