题目地址:
https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/
给定一个数组 A A A, A [ i ] A[i] A[i]代表下标为 i i i的小朋友拥有的糖的数量,再给定一个数代表新增的糖果数量。对于每一个小朋友,是否存在一种对新增糖果的分法,使得该小朋友拥有的糖果数最多。
只需判断一下 A [ i ] A[i] A[i]加上新增糖果数量后是否不小于 A A A的最大值即可。代码如下:
import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
List<Boolean> res = new ArrayList<>();
if (candies == null || candies.length == 0) {
return res;
}
int max = 0;
for (int candy : candies) {
max = Math.max(max, candy);
}
for (int candy : candies) {
res.add(candy + extraCandies >= max);
}
return res;
}
}
时间复杂度 O ( n ) O(n) O(n),空间 O ( 1 ) O(1) O(1)。