class Solution {
public:
bool func(vector<int>& position,int mid,int m){
int cnt=1,pre=position[0];
for(int i=1;i<position.size();i++){
if(position[i]-pre>=mid){
cnt++;
pre=position[i];
}
}
return cnt>=m;
}
int maxDistance(vector<int>& position, int m) {
sort(position.begin(),position.end());
int l=1,ans=0;
int r=position.back()-position[0];
while(l<=r){
int mid=(l+r)/2;
if(func(position,mid,m)){
ans=mid;
l=mid+1;
}
else
r=mid-1;
}
return ans;
}
};
力扣 1552. 两球之间的磁力(二分查找解决最大值最小化,最小值最大化问题)
最新推荐文章于 2022-11-07 22:39:38 发布