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