fun findMinMax(array: List): Pair { var minCandidates = mutableListOf() var maxCandidates = mutableListOf() for (i in 1 until array.count() step 2) { if (array[i - 1] < array[i]) { minCandidates.add(array[i - 1]) maxCandidates.add(array[i]) } else { minCandidates.add(array[i]) maxCandidates.add(array[i - 1]) } } if (array.count() % 2 != 0) { minCandidates.add(array[array.count() - 1]) maxCandidates.add(array[array.count() - 1]) } var min = minCandidates[0] var max = maxCandidates[0] for (i in minCandidates.indices) { if (min > minCandidates[i]) { min = minCandidates[i] } if (max < maxCandidates[i]) { max = maxCandidates[i] } } return Pair(min, max) } fun main() { val array = listOf(3, 6, 1, 9, 10, 4, -4, 6, 12, 5, 11) val (min, max) = findMinMax(array) println("Minimum: $min, Maximum: $max") }