当前位置:   article > 正文

63 贪心算法解分发糖果的问题_贪心算法分糖果问题

贪心算法分糖果问题

问题描述:老师想给孩子们分发糖果,由N个孩子占城了一条直线,老师会根据每个孩子的表现,预先给他们评分,你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配一个糖果,评分更高的孩子必须比他两侧邻位孩子获得更多的糖果,这样下来老师需要准备多少颗糖果,

贪心算法求解:左右两次遍历,第一次遍历从左往右,要是右边比左边高,则右边增加一个糖果,第二次遍历从右往左,如果左边比右边高,则左边增加一个糖果,

  1. public numberCandy(int []nums)
  2. {
  3. nums[0]=1;
  4. for(int i=1;i<nums.length;i++)
  5. {
  6. if(nums[i]>nums[i-1])
  7. {
  8. nums[i]=nums[i-1]+1;
  9. }else
  10. {
  11. if(nums[i-1]==1)
  12. {
  13. nums[i]=1;
  14. }else
  15. {
  16. nums[i]=nums[i-1]+1;
  17. }
  18. }
  19. }
  20. for(int i=nums.length-2;i>=0;i--)
  21. {
  22. if(nums[i]>nums[i+1]){nums[i]=nums[i-1]+1;}
  23. }
  24. int total=0;
  25. for(int num:nums)
  26. {
  27. total+=num;
  28. }
  29. ​​​​​​​return total;
  30. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/1021671
推荐阅读
相关标签
  

闽ICP备14008679号