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
可是这样理解起来不是很方便,因此我本身是按照如下的方式写的,看着会臃肿一点,没有那么简洁!
未完待续!