-
Notifications
You must be signed in to change notification settings - Fork 0
/
1431. Kids With the Greatest Number of Candies.java
46 lines (36 loc) · 1.97 KB
/
1431. Kids With the Greatest Number of Candies.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
1431. Kids With the Greatest Number of Candies
Given the array candies and the integer extraCandies, where candies[i] represents the number of candies that the ith kid has.
For each kid check if there is a way to distribute extraCandies among the kids such that he or she can have the greatest number of candies among them. Notice that multiple kids can have the greatest number of candies.
Input: candies = [2,3,5,1,3], extraCandies = 3
Output: [true,true,true,false,true]
Explanation:
Kid 1 has 2 candies and if he or she receives all extra candies (3) will have 5 candies --- the greatest number of candies among the kids.
Kid 2 has 3 candies and if he or she receives at least 2 extra candies will have the greatest number of candies among the kids.
Kid 3 has 5 candies and this is already the greatest number of candies among the kids.
Kid 4 has 1 candy and even if he or she receives all extra candies will only have 4 candies.
Kid 5 has 3 candies and if he or she receives at least 2 extra candies will have the greatest number of candies among the kids.
*/
class Solution {
public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
// List that needs to be returned
ArrayList<Boolean> retList = new ArrayList<Boolean>();
// essentially we have to compare with this values only
int maxCandies = -1;
for(int a : candies){
if(a > maxCandies){
maxCandies = a;
}
}
// Iterate over candies array for each kid
for(int i = 0, kidsLength = candies.length; i < kidsLength; i++){
// If his/her candies + extra get equal or more to maxCandies then assert true;
if(candies[i] + extraCandies >= maxCandies){
retList.add(true);
}else{
retList.add(false);
}
}
return retList;
}
}