在一排座位(seats
)中,1
代表有人坐在座位上,0
代表座位上是空的。
至少有乙個空座位,且至少有一人坐在座位上。
亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。
返回他到離他最近的人的最大距離。
示例 1:
輸入:[1,0,0,0,1,0,1]輸出:2解釋:如果亞歷克斯坐在第二個空位(seats[2])上,他到離他最近的人的距離為 2 。示例 2:如果亞歷克斯坐在其它任何乙個空位上,他到離他最近的人的距離為 1 。
因此,他到離他最近的人的最大距離是 2 。
輸入:[1,0,0,0]輸出:3解釋:如果亞歷克斯坐在最後乙個座位上,他離最近的人有 3 個座位遠。這是可能的最大距離,所以答案是 3 。
1 <= seats.length <= 20000
seats
中只含有 0 和 1,至少有乙個0
,且至少有乙個1
。
和leetcode 868 二進位制間距相似找出被1個零或多個零分割的1,然後考慮讓亞歷克斯坐在中間位置;但只按上述方法找位置會遺漏000011101000000的情況,所以要記錄第乙個1和最後乙個1出現的位置
int maxdisttoclosest(vector& seats)
pre = post;}}
if(seats[pre] == 1) first = min(first,pre);
if(seats[post] == 1) last = max(last,post);
post++;
}if(first == len-1) return first;
ans = max(ans,first-0);
ans = max(ans,len-last-1);
return ans;
}
leetcode 849 到最近的人的最大距離
在一排座位 seats 中,1 代表有人坐在座位上,0 代表座位上是空的。至少有乙個空座位,且至少有一人坐在座位上。亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。返回他到離他最近的人的最大距離。示例 1 輸入 1,0,0,0,1,0,1 輸出 2 解釋 如果亞歷克斯坐在第二...
LeetCode849 到最近的人的最大距離
在一排座位 seats 中,1代表有人坐在座位上,0代表座位上是空的。至少有乙個空座位,且至少有一人坐在座位上。亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。返回他到離他最近的人的最大距離。示例 1 輸入 1,0,0,0,1,0,1 輸出 2 解釋 如果亞歷克斯坐在第二個空...
LeetCode 849 到最近的人的最大距離
在一排座位 seats 中,1 代表有人坐在座位上,0 代表座位上是空的。至少有乙個空座位,且至少有一人坐在座位上。亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。返回他到離他最近的人的最大距離。示例 1 輸入 1,0,0,0,1,0,1 輸出 2 解釋 如果亞歷克斯坐在第二...