https://leetcode.com/problems/maximize-distance-to-closest-person/code
在一排座位( seats
)中,1
表明有人坐在座位上,0
表明座位上是空的。blog
至少有一個空座位,且至少有一人坐在座位上。leetcode
亞歷克斯但願坐在一個可以使他與離他最近的人之間的距離達到最大化的座位上。get
返回他到離他最近的人的最大距離。im
示例 1:img
輸入:[1,0,0,0,1,0,1] 輸出:2 解釋: 若是亞歷克斯坐在第二個空位(seats[2])上,他到離他最近的人的距離爲 2 。 若是亞歷克斯坐在其它任何一個空位上,他到離他最近的人的距離爲 1 。 所以,他到離他最近的人的最大距離是 2 。
示例 2:di
輸入:[1,0,0,0] 輸出:3 解釋: 若是亞歷克斯坐在最後一個座位上,他離最近的人有 3 個座位遠。 這是可能的最大距離,因此答案是 3 。
提示:co
1 <= seats.length <= 20000
seats
中只含有 0 和 1,至少有一個 0
,且至少有一個 1
。最開始的想法比較樸素,也比較好實現,就是找出哪些位置上有人買了,比較一下距離就行了,固然這裏題目要求是至少有1的狀況的ps
而後看到別人的提交,是比較簡潔的,這裏主要考慮連續的0的長度,考慮連續的時候,比較是有幾個1包圍的,多是001,100,101這三種狀況tar
可是這樣理解起來不是很方便,因此我本身是按照如下的方式寫的,看着會臃腫一點,沒有那麼簡潔!
未完待續!