How to find the second biggest number in a list with Kotlin

3 Answers

0 votes
fun findSecondLargest(list: List<Int>): Int? {
    if (list.size < 2) return null
    
    var firstLargest = Int.MIN_VALUE
    var secondLargest = Int.MIN_VALUE
    
    for (number in list) {
        if (number > firstLargest) {
            secondLargest = firstLargest
            firstLargest = number
        } else if (number > secondLargest && number != firstLargest) {
            secondLargest = number
        }
    }
    
    return if (secondLargest == Int.MIN_VALUE) null else secondLargest
}

fun main() {
    val list = listOf(3, 14, 4, 1, 5, 90, 2, 6, 85, 7)
    
    println("Second largest number is: ${findSecondLargest(list)}")
}


 
/*
run:

Second largest number is: 85
 
*/

 



answered Jan 19, 2025 by avibootz
edited Jan 19, 2025 by avibootz
0 votes
fun findSecondLargest(list: List<Int>): Int? {
    if (list.size < 2) return null
    
    val sortedNumbers = list.sortedDescending()
    
    return sortedNumbers[1]
}

fun main() {
    val list = listOf(3, 14, 4, 1, 5, 90, 2, 6, 85, 7)
    
    println("Second largest number is: ${findSecondLargest(list)}")
}


 
/*
run:

Second largest number is: 85
 
*/

 



answered Jan 19, 2025 by avibootz
0 votes
fun findSecondLargest(list: List<Int>): Int? {
    return list.distinct().sortedDescending().getOrNull(1)
}

fun main() {
    val list = listOf(3, 14, 4, 1, 5, 90, 2, 6, 85, 7)
    
    println("Second largest number is: ${findSecondLargest(list)}")
}


 
/*
run:

Second largest number is: 85
 
*/

 



answered Jan 19, 2025 by avibootz
...