思路分析

只要存在一个方案就输出true,极端考虑,将额外的糖果全部分配给一个孩子,如果能让他的糖果数量不小于原来的最大值,那么就证明存在满足条件的方案。

代码实现

  1. class Solution {
  2. public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
  3. int max = 0;
  4. List<Boolean> ans = new ArrayList<Boolean>();
  5. int i;
  6. // 找出拥有最多的糖果数量
  7. for (i = 0; i < candies.length; ++i){
  8. if (candies[i] > max){
  9. max = candies[i];
  10. }
  11. }
  12. // 加上额外的糖果数后不小于最大值即表示存在方案
  13. for (i = 0; i < candies.length; ++i){
  14. if (candies[i] + extraCandies >= max){
  15. ans.add(true);
  16. }else{
  17. ans.add(false);
  18. }
  19. }
  20. return ans;
  21. }
  22. }