class Solution {
public:
int shipWithinDays(vector<int>& weights, int days) {
int sum=0,max=weights[0];
for(int i=0;i<weights.size();i++){
sum+=weights[i];
if(weights[i]>max)
max=weights[i];
}
while(max<sum){
int mid=max+(sum-max)/2;
int d=1,cur=0;
for(int i=0;i<weights.size();i++){
if(cur+weights[i]>mid){
d+=1;
cur=0;
}
cur+=weights[i];
}
if(d<=days){
sum=mid;
}
else{
max=mid+1;
}
}
return max;
}
};
Forcus:
1 二分查找不要限定在数组中,只要是范围都可以
2 参考https://www.omegaxyz.com/2019/04/06/bi-search/