在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的。
至少有乙個空座位,且至少有一人坐在座位上。
亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。
返回他到離他最近的人的最大距離。
示例 1:
輸入:[1,0,0,0,1,0,1]
輸出:2
解釋:如果亞歷克斯坐在第二個空位(seats[2])上,他到離他最近的人的距離為 2 。
如果亞歷克斯坐在其它任何乙個空位上,他到離他最近的人的距離為 1 。
因此,他到離他最近的人的最大距離是 2 。
示例 2:
1 <= seats.length <= 20000
seats 中只含有 0 和 1,至少有乙個 0,且至少有乙個 1。
分類討論:
1、右邊有人左邊沒人[0,0,1]
2、左邊有人右邊沒人[1,0,0]
3、兩邊都有人[1,0,0,1]
取三種情況的最大值,例:[0,0,0,1,0,0,0,0,1,0,0]返回值為3
public
static
intmaxdisttoclosest
(int
seats)
for(
int i=
0;i) count =0;
if(f1==-1
) f1=i;
e1=i;}if
(seats[i]==0
) count++;}
int lr_max = math.
max(f1,len-
1-e1)
;int m_max = max%2==
0?max/
2:max/2+
1;return math.
max(lr_max,m_max)
;}
849 到最近的人的最大距離
在一排座位 seats 中,1 代表有人坐在座位上,0 代表座位上是空的。至少有乙個空座位,且至少有一人坐在座位上。亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。返回他到離他最近的人的最大距離。示例 1 輸入 1,0,0,0,1,0,1 輸出 2 解釋 如果亞歷克斯坐在第二...
849 到最近的人的最大距離
題目 在一排座位 seats 中,1 代表有人坐在座位上,0 代表座位上是空的。至少有乙個空座位,且至少有一人坐在座位上。亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。返回他到離他最近的人的最大距離。示例 1 輸入 1,0,0,0,1,0,1 輸出 2解釋 如果亞歷克斯坐在...
到最近的人的最大距離
在一排座位 seats 中,1 代表有人坐在座位上,0 代表座位上是空的。至少有乙個空座位,且至少有一人坐在座位上。亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。返回他到離他最近的人的最大距離。示例 1 輸入 1,0,0,0,1,0,1 輸出 2 解釋 如果亞歷克斯坐在第二...