# 1431. Kids With the Greatest Number of Candies - LeetCode Python/Java/C++/JS/C#/Go/Ruby Solutions
Visit original link: [1431. Kids With the Greatest Number of Candies - LeetCode Python/Java/C++/JS/C#/Go/Ruby Solutions](https://leetcode.blog/en/leetcode/1431-kids-with-the-greatest-number-of-candies) for a better experience!
LeetCode link: [1431. Kids With the Greatest Number of Candies](https://leetcode.com/problems/kids-with-the-greatest-number-of-candies), difficulty: **Easy**.
## LeetCode description of "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 `i-th` kid has, and an integer `extraCandies`, denoting the number of extra candies that you have.
Return a boolean array resu`lt 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`
### [Hints]
Hint 1
For each kid check if candies[i] + extraCandies ≥ maximum in Candies[i].
## Intuition
1. Find the maximum number of candies among all kids
2. Check if each kid can reach or exceed this maximum after receiving extra candies
## Step by Step Solutions
1. `max_candy = candies.max` → Directly get the maximum value from the array
2. `candies.map { |c| c + extra_candy >= max_candy }` → Use `map` to iterate and check if each kid can have the most candies
## Complexity
- Time complexity: `O(N)`.
- Space complexity: `O(N)`.
## Python
```python
class Solution:
def kidsWithCandies(self, candies: List[int], extra_candy: int) -> List[bool]:
max_candy = max(candies)
result = []
for candy in candies:
result.append(candy + extra_candy >= max_candy)
return result
```
## Java
```java
class Solution {
public List kidsWithCandies(int[] candies, int extraCandy) {
int maxCandy = Arrays.stream(candies).max().getAsInt();
List result = new ArrayList<>();
for (int candy : candies) {
result.add(candy + extraCandy >= maxCandy);
}
return result;
}
}
```
## C++
```cpp
class Solution {
public:
vector kidsWithCandies(vector& candies, int extraCandy) {
int max_candy = *max_element(candies.begin(), candies.end());
vector result;
for (int candy : candies) {
result.push_back(candy + extraCandy >= max_candy);
}
return result;
}
};
```
## JavaScript
```javascript
var kidsWithCandies = function(candies, extraCandy) {
const maxCandy = Math.max(...candies)
return candies.map((candy) => candy + extraCandy >= maxCandy)
};
```
## Go
```go
func kidsWithCandies(candies []int, extraCandy int) []bool {
maxCandy := candies[0]
for _, candy := range candies {
if candy > maxCandy {
maxCandy = candy
}
}
result := make([]bool, len(candies))
for i, candy := range candies {
result[i] = candy+extraCandy >= maxCandy
}
return result
}
```
## C#
```csharp
public class Solution
{
public IList KidsWithCandies(int[] candies, int extraCandy)
{
int maxCandy = candies.Max();
return candies.Select(candy => candy + extraCandy >= maxCandy).ToList();
}
}
```
## Ruby
```ruby
def kids_with_candies(candies, extra_candy)
max_candy = candies.max
candies.map { |candy| candy + extra_candy >= max_candy }
end
```
## Other languages
```java
// Welcome to create a PR to complete the code of this language, thanks!
```
Dear LeetCoders! For a better LeetCode problem-solving experience, please visit website [LeetCode.blog](https://leetcode.blog): Dare to claim the best practices of LeetCode solutions! Will save you a lot of time!
Original link: [1431. Kids With the Greatest Number of Candies - LeetCode Python/Java/C++/JS/C#/Go/Ruby Solutions](https://leetcode.blog/en/leetcode/1431-kids-with-the-greatest-number-of-candies).
GitHub repository: [leetcode-python-java](https://github.com/leetcode-python-java/leetcode-python-java).