fun maxDistance(arr: IntArray): Int {
val indexMap = mutableMapOf<Int, Int>()
var maxDistance = 0
for (i in arr.indices) {
if (indexMap.containsKey(arr[i])) {
val distance = i - indexMap[arr[i]]!!
maxDistance = maxOf(maxDistance, distance)
} else {
indexMap[arr[i]] = i
}
}
return maxDistance
}
fun main() {
val arr = intArrayOf(7, 1, 4, 3, 1, 5, 3, 4, 9, 1, 3)
println("Maximum distance: ${maxDistance(arr)}")
}
/*
run:
Maximum distance: 8
*/