1431.Kids With the Greatest Number of Candies

Sukanya Bharati
3 min readOct 25, 2021

(LeetCode easy problem)

There are n kids with candies. You are given an integer array candies, where each candies[i] represents the number of candies the ith the 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

Approach

So let us understand how our approach should be? Any ideas? Well, let us understand the question first.

So first we are given the number of candies initially the children have so candies = [1,2,3], assume it.

Now find the maximum candies in the given array of candies which is 3. Now

candies[0]+extraCandies = 1 + 3 = 4 > 3

candies[1]+extraCandies = 2 + 3 = 5 >3

candies[2]+extraCandies = 3 + 3 = 6 >3

So since we see that all the children when given those extra candies will have a number greater than the maximum candy count in the given candy array. And this is the required solution.

The code is as follows :

class Solution {
public:
vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies) {
vector<bool>ans;
int maxm_can = INT_MIN;
for(int i=0;i<candies.size();i++)
{
maxm_can = max(maxm_can,candies[i]);
}
for(int i=0;i<candies.size();i++)
{
if((candies[i]+extraCandies)>=maxm_can)
ans.push_back(true);
else
ans.push_back(false);
}
return ans;
}
};

The time complexity goes here as O(n)+O(n) = O(n) once for traversing and finding the maximum and the other for comparing that the value is greater than the maximum candy value or not.

Space complexity is O(n) because I am using it to store the boolean values.

Hope this helps!! Keep coding & keep learning!!πŸ’»πŸ™Œ

Since you enjoyed reading my blog , why not buy me a coffee and supoort my work here!! https://www.buymeacoffee.com/sukanyabharati β˜•

--

--

Sukanya Bharati

A happy , motivated & a curious soul if you end up finding me 😎😁.