https://leetcode.com/problems/distance-between-bus-stops/ Easy

Решение

fun distanceBetweenBusStops(distance: IntArray, start: Int, destination: Int): Int {
    // Определяем меньший и больший индекс
    var min = start
    var max = destination
    if (min > max) {
        val temp = min
        min = max
        max = temp
    }

    var direct = 0   // Сумма расстояний по часовой стрелке
    var total = 0    // Общее расстояние по кругу

    for (i in distance.indices) {
        total += distance[i] // Считаем общее расстояние
        if (i in min until max) {
            direct += distance[i] // Считаем расстояние в прямом направлении
        }
    }

    // Выбираем минимальное расстояние между прямым и обратным маршрутом
    return if (direct < total - direct) direct else total - direct
}