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
n
<= 100candies[i]
<= 100extraCandies
<= 50
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 ReasonsLearn More →
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
就不能貪心一點,一行跟速度都要嗎?
Yen-Chi ChenMon, Apr 17, 2023
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
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
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