Try   HackMD

1431.Kids With the Greatest Number of Candies

tags: Easy,Array

1431. 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 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

解答

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]

Ron ChenMon, Apr 17, 2023

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

gpwork4uMon, Apr 17, 2023

class Solution: def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]: return map(lambda x, y=max(candies): x + extraCandies >= y, candies)

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

就不能貪心一點,一行跟速度都要嗎?
Yen-Chi ChenMon, Apr 17, 2023

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; }

MarsgoatMon, Apr 17, 2023

function kidsWithCandies(candies, extraCandies) { const max = Math.max(...candies); return candies.map((candy) => candy + extraCandies >= max); }

學習樓上,這樣寫beat99%
MarsgoatMon, Apr 17, 2023

TypeScript

function kidsWithCandies(candies: number[], extraCandies: number): boolean[] { const diff = Math.max(...candies) - extraCandies; return candies.map((num) => num >= diff); }

當傳入的 numeric array 非常大的時候,可以使用Array.reduce()

function kidsWithCandies(candies: number[], extraCandies: number): boolean[] { const max = candies.reduce((a, b) => Math.max(a, b)); return candies.map((num) => num + extraCandies >= max); }

SheepMon, Apr 17, 2023

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

Ron ChenTue, Apr 18, 2023

Reference

回到題目列表