链接: 875. 爱吃香蕉的珂珂
描述和示例
class Solution {
public:
long gettime(vector<int>& piles, int speed)
{
long time = 0;
for(auto a:piles)
{
time+=(a+speed-1)/speed;
}
return time;
}
int minEatingSpeed(vector<int>& piles, int h) {
int Min = 1;
int Max = 0;
for(int a:piles)
{
Max=max(a,Max);
}
int k = Max;
while(Min<Max)
{
int speed=(Max-Min)/2+Min;
long time = gettime(piles,speed);
if(time<=h)
{
k=speed;
Max=speed;
}
else
{
Min=speed+1;
}
}
return k;
}
};
简单解析
珂珂的速度一定是:1到 piles[i].max
speed可能等于这里面任何的值
这个题可以转化为:
从1,2,3,4,5,,,, piles[i].max
中找到一个符合条件的返回值
这是一个带有顺序的数组,
所以可以使用二分查找法来找到
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)