Leetcode 875. 爱吃香蕉的珂珂(DAY 183)---- 二分查找学习期

忘是亡心i 2022-09-14 09:46 284阅读 0赞

文章目录

    • 原题题目
    • 代码实现(首刷自解)

原题题目


在这里插入图片描述


代码实现(首刷自解)


  1. class Solution {
  2. public:
  3. bool can_eat(vector<int>& piles,int eat_speed,int h)
  4. {
  5. int finish_h = 0;
  6. for(const auto& num:piles)
  7. {
  8. bool remain = num % eat_speed;
  9. finish_h += ((num / eat_speed) + ((remain) ? 1 : 0));
  10. if(finish_h > h) return false;
  11. }
  12. return true;
  13. }
  14. int minEatingSpeed(vector<int>& piles, int h) {
  15. int left = 1,right = 0;
  16. for(const auto& num:piles)
  17. right = max(right,num);
  18. while(left < right)
  19. {
  20. int mid = (left + right)/2;
  21. if(!can_eat(piles,mid,h)) left = mid+1;
  22. else right = mid;
  23. }
  24. return left;
  25. }
  26. };

发表评论

表情:
评论列表 (有 0 条评论,284人围观)

还没有评论,来说两句吧...

相关阅读