How to find the maximum distance between two occurrences of same number in array with Kotlin

1 Answer

0 votes
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
 
*/

 



answered Jan 9, 2025 by avibootz
...