在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的。
至少有乙個空座位,且至少有一人坐在座位上。
亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。
返回他到離他最近的人的最大距離。
示例 1:
輸入:[1,0,0,0,1,0,1]
輸出:2
解釋:如果亞歷克斯坐在第二個空位(seats[2])上,他到離他最近的人的距離為 2 。
如果亞歷克斯坐在其它任何乙個空位上,他到離他最近的人的距離為 1 。
因此,他到離他最近的人的最大距離是 2 。
示例 2:
輸入:[1,0,0,0]
輸出:3
解釋:
如果亞歷克斯坐在最後乙個座位上,他離最近的人有 3 個座位遠。
這是可能的最大距離,所以答案是 3 。
使用 prev 記錄 i 最左邊第乙個有人的位置,future 記錄 i 最右邊第乙個有人的位置。
座位 i 到最近的人的距離為 min(i - prev, future - i)。另外有一種特殊情況,如果座位 i 左邊沒有人,則認為到左邊第乙個人的距離是無限大,右邊同理。
class
solution
else
}return ans;
}}
class
solution}if
(left !=0)
for(
int right = left +
1; right < len; right++)if
(right == len -
1&& seats[right]!=1
)}return max;
}}
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解釋 如果亞歷克斯坐在第二個空位...