原题链接:Leecode 875. 爱吃香蕉的珂珂
class Solution {
public:
int Count(vector<int>& piles,int mid)
{
int c=0,l=0;
while(piles[l]<=mid) l++;
for(int i=l;i<piles.size();i++)
{
int t=piles[i]%mid;
int n=piles[i]/mid;
c+= t==0 ? n:n+1;
}
return c+l;
}
int minEatingSpeed(vector<int>& piles, int h) {
int n=piles.size();
sort(piles.begin(),piles.end());
if(h==n) return piles.back();
int l=1,r=piles.back();
while(l<r)
{
int mid=l+(r-l)/2;
if(Count(piles,mid)>h) l=mid+1;
else r=mid;
}
return l;
}
};