[LeetCode] 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
2 <= n <= 100
1 <= candies[i] <= 100
1 <= extraCandies <= 50
拥有最多糖果的孩子。
给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。
对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/kids-with-the-greatest-number-of-candies
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
儿童节来一道儿童题吧。题意是给一个数组表示几个孩子每个人手里目前有几个糖果,同时有一个 extraCandies 变量。如果这个 extraCandies 给了任何一个儿童,问是否能让当前这个儿童成为拥有糖果最多的孩子。
时间O(n)
空间O(n)
Java实现
1 class Solution { 2 public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) { 3 int max = 0; 4 for (int candy : candies) { 5 max = Math.max(max, candy); 6 } 7 List<Boolean> res = new ArrayList<>(); 8 for (int candy : candies) { 9 if (candy + extraCandies >= max) { 10 res.add(true); 11 } else { 12 res.add(false); 13 } 14 } 15 return res; 16 } 17 }
JavaScript实现
1 /** 2 * @param {number[]} candies 3 * @param {number} extraCandies 4 * @return {boolean[]} 5 */ 6 var kidsWithCandies = function(candies, extraCandies) { 7 var max = 0; 8 var res = []; 9 for (var i = 0; i < candies.length; i++) { 10 max = Math.max(max, candies[i]); 11 } 12 console.log(max); 13 for (var i = 0; i < candies.length; i++) { 14 if (candies[i] + extraCandies >= max) { 15 res.push(true); 16 } else { 17 res.push(false); 18 } 19 } 20 return res; 21 };