1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-09-16 16:36:56 +02:00
LeetCode/kt/maximize-distance-to-closest-person.kt
Matej Focko aaaebf1d52
style(kt): reformat the files
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-05-17 18:23:38 +02:00

17 lines
632 B
Kotlin

class Solution {
private fun mapSeats(seats: IntArray): MutableList<Int> = seats.map { if (it == 1) 0 else Int.MAX_VALUE }.toMutableList()
fun maxDistToClosest(seats: IntArray): Int {
val left: MutableList<Int> = mapSeats(seats)
for (i in left.indices.drop(1).filter { left[it] != 0 }) {
left[i] = left[i - 1] + 1
}
val right: MutableList<Int> = mapSeats(seats)
for (i in right.indices.reversed().drop(1).filter { right[it] != 0 }) {
right[i] = right[i + 1] + 1
}
return left.zip(right).map { (l, r) -> if (l < r) l else r }.max()!!
}
}