[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 };

 

LeetCode 题目总结

posted @ 2020-06-01 12:40  CNoodle  阅读(598)  评论(0编辑  收藏  举报