How to find the smallest letter in a sorted array that is larger than a given letter in Kotlin

1 Answer

0 votes
fun findSmallestLetterGreaterThanTarget(letters: CharArray, givenLetter: Char): Char {
    var left = 0
    var right = letters.size - 1
    var result = letters[0] // Default to the first letter

    while (left <= right) {
        val mid = left + (right - left) / 2

        if (letters[mid] > givenLetter) {
            result = letters[mid]
            right = mid - 1 // Narrow down to the left half
        } else {
            left = mid + 1 // Narrow down to the right half
        }
    }

    return result
}

fun main() {
    val letters = charArrayOf('c', 'e', 'k', 'm')
    val givenLetter = 'd'

    val result = findSmallestLetterGreaterThanTarget(letters, givenLetter)

    println("The smallest letter greater than '$givenLetter' is: $result")
}



/*
run:

The smallest letter greater than 'd' is: e

*/

 



answered Sep 22 by avibootz
...