件名の説明:
アイデア:
各欠員が彼の最も近い人々を遠ざけるために、見つけるために、双方向のクエリは、
その後、これらの空孔の最大距離を見つけるために比較します
コードは以下の通りであります:
class Solution {
public:
int maxDistToClosest(vector<int>& seats) {
vector<int>distc;
int res=0;
int temp=0;
for(int i=0;i<seats.size();i++){
if(seats[i]==1){
temp=i;
break;}
}
for(int i=0;i<seats.size();i++){
if(seats[i]==1)
temp=i;
else
distc.push_back(abs(i-temp));
}
for(int i=seats.size()-1;i>=0;i--){
if(seats[i]==1){
temp=i;
break;}
}
for(int i=seats.size()-1;i>=0;i--){
if(seats[i]==1)
temp=i;
else
distc.push_back(abs(i-temp));
}
int cnt=distc.size();
int m=0,n=cnt-1;
while(m<n){
res=max(min(distc[m],distc[n]),res);
m++;
n--;
}
return res;
}
};