LeetCode Python/Java/C++/JS  >  Array  >  1431. Kids With the Greatest Number of Candies  >  Solved in Python, Java, C++, JavaScript, Go, C#, Ruby  >  GitHub or Repost

LeetCode link: 1431. Kids With the Greatest Number of Candies, difficulty: Easy.

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 lengthn, whereresult[i]istrueif, after giving thei-thkid all theextraCandies, they will have the **greatest** number of candies among all the kids, orfalse` 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
Hint 1

For each kid check if candies[i] + extraCandies β‰₯ maximum in Candies[i].

Intuition

Webmaster (Zhang Jian): πŸ‘‹

Hi everyone! I am Zhang Jian.
I know the challenge of transitioning from mastering algorithms to actually landing a great job. That's why, in addition to this resource, I personally developed leader.me!

πŸš€ leader.me is the ultimate all-in-one platform for programmers to build their personal brand, featuring portfolio hosting, resume builders, and integrated blogs.

Build your programmer brand at leader.me β†’


  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 Solution

  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 #

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 #

class Solution {
    public List<Boolean> kidsWithCandies(int[] candies, int extraCandy) {
        int maxCandy = Arrays.stream(candies).max().getAsInt();
        List<Boolean> result = new ArrayList<>();

        for (int candy : candies) {
            result.add(candy + extraCandy >= maxCandy);
        }

        return result;
    }
}

C++ #

class Solution {
public:
    vector<bool> kidsWithCandies(vector<int>& candies, int extraCandy) {
        int max_candy = *max_element(candies.begin(), candies.end());
        vector<bool> result;

        for (int candy : candies) {
            result.push_back(candy + extraCandy >= max_candy);
        }

        return result;
    }
};

JavaScript #

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

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# #

public class Solution
{
    public IList<bool> KidsWithCandies(int[] candies, int extraCandy)
    {
        int maxCandy = candies.Max();
        return candies.Select(candy => candy + extraCandy >= maxCandy).ToList();
    }
}

Ruby #

def kids_with_candies(candies, extra_candy)
  max_candy = candies.max
  candies.map { |candy| candy + extra_candy >= max_candy }
end

Other languages

Welcome to contribute code to LeetCode.blog GitHub -> 1431. Kids With the Greatest Number of Candies. Thanks!

Level Up Your Developer Identity

πŸš€ While mastering algorithms is key, showcasing your talent is what gets you hired.
We recommend leader.me β€” the ultimate all-in-one personal branding platform for programmers.

The All-In-One Career Powerhouse:

  • πŸ“„ Resume, Portfolio & Blog: Integrate your skills, projects, and writing into one stunning site.
  • 🌐 Free Custom Domain: Bind your own personal domain for freeβ€”forever.
  • ✨ Premium Subdomains: Stand out with elite tech handle like name.leader.me.

Build Your Programmer Brand at leader.me β†’