1431.Kids With the Greatest Number of Candies === ###### tags: `Easy`,`Array` [1431. Kids With the Greatest Number of Candies](https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/) ### 題目描述 There are `n` kids with candies. You are given an integer array `candies`, where each `candies[i]` represents the number of candies the i^th^ 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* i^th^ *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 ### 解答 #### Python ```python= class Solution: def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]: return [True if candy + extraCandies >= max(candies) else False for candy in candies] ``` > [name=Ron Chen][time=Mon, Apr 17, 2023] ```python= class Solution: def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]: ret = [] max_value = max(candies) for candy in candies: if candy + extraCandies >= max_value: ret.append(True) else: ret.append(False) return ret ``` > [name=gpwork4u][time=Mon, Apr 17, 2023] ```python= class Solution: def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]: return map(lambda x, y=max(candies): x + extraCandies >= y, candies) ``` > ![](https://i.imgur.com/ofGlZ4w.png) > 就不能貪心一點,一行跟速度都要嗎? > [name=Yen-Chi Chen][time=Mon, Apr 17, 2023] #### Javascript ```javascript= function kidsWithCandies(candies, extraCandies) { const result = []; const greatest = Math.max(...candies); for (const candy of candies) { if (candy + extraCandies >= greatest) { result.push(true); } else { result.push(false); } } return result; } ``` > [name=Marsgoat][time=Mon, Apr 17, 2023] ```javascript= function kidsWithCandies(candies, extraCandies) { const max = Math.max(...candies); return candies.map((candy) => candy + extraCandies >= max); } ``` > 學習樓上,這樣寫beat99% > [name=Marsgoat][time=Mon, Apr 17, 2023] #### TypeScript ```typescript= function kidsWithCandies(candies: number[], extraCandies: number): boolean[] { const diff = Math.max(...candies) - extraCandies; return candies.map((num) => num >= diff); } ``` 當傳入的 numeric array 非常大的時候,可以使用`Array.reduce()` ```typescript= function kidsWithCandies(candies: number[], extraCandies: number): boolean[] { const max = candies.reduce((a, b) => Math.max(a, b)); return candies.map((num) => num + extraCandies >= max); } ``` > [name=Sheep][time=Mon, Apr 17, 2023] #### Java ```java= class Solution { public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) { int maxCandies = Arrays.stream(candies).max().orElse(0); return Arrays.stream(candies) .mapToObj(candy -> candy + extraCandies >= maxCandies) .collect(Collectors.toList()); } ``` 練習一下 Java 8 Stream API > [name=Ron Chen][time=Tue, Apr 18, 2023] ### Reference [回到題目列表](https://hackmd.io/@Marsgoat/leetcode_every_day)