JS 到最近的人的最大距離 陣列 找最大距離

2021-09-01 20:02:54 字數 868 閱讀 7172

在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的。

返回最大距離

輸入:[1,0,0,0,1,0,1] 輸出:2 ,解釋:最大空座是3,向左邊或者右邊的人最大距離都是2

輸入:[1,0,0,0] 輸出:3 ,解釋:末位距離首位是3

輸入:[0, 0, 0, 1, 0, 0, 0, 0, 1] 輸出:3 ,解釋:雖然中間有4個空座,但是他們最大的距離是2,而最前面的3個空座距離是3

思路找到陣列中的最大空座位數量 max,再找到最前和最後的空座數 start , end ,返回最大的值,

var maxdisttoclosest = function(seats) 

}for(var i=0;i=0;i--)

end = start>end? start : end;

// console.log(max,end)

return (math.ceil(max/2) > end) ? math.ceil(max/2) : end

};

79 / 79 個通過測試用例

執行用時:92 ms

把上面的**優化一下

var maxdisttoclosest = function(seats) 

end=seats[len-1]==0 ? end:0

return math.max((math.ceil(max/2)),end,start)

};

79 / 79 個通過測試用例

執行用時:72 ms

到最近的人的最大距離

在一排座位 seats 中,1 代表有人坐在座位上,0 代表座位上是空的。至少有乙個空座位,且至少有一人坐在座位上。亞歷克斯希望坐在乙個能夠使他與離他最近的人之間的距離達到最大化的座位上。返回他到離他最近的人的最大距離。示例 1 輸入 1,0,0,0,1,0,1 輸出 2 解釋 如果亞歷克斯坐在第二...

到最近的人的最大距離

在一排座位 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 解釋 如果亞歷克斯坐在第二...