leetcode 875. 爱吃香蕉的珂珂
class Solution {
public:
int minEatingSpeed(vector<int>& piles, int H) {
long left=1,right=*max_element(piles.begin(),piles.end());
while(left<right){
long mid =left+(right-left)/2;
if(canFinsh(piles,mid,H)){
right=mid;
}else{
left =mid+1;
}
}
return left;
}
bool canFinsh(vector<int>& piles,long speed, int H){
long time = 0;
for(int i=0;i<piles.size();++i){
time += (piles[i]/speed + (piles[i]%speed>0?1:0));
}
return time<=H;
}
};
可是不知道为啥只超过了7%的,按理来说二分应该是最简单的了

浙公网安备 33010602011771号