object FindNextLetter {
// Function to find the smallest letter greater than the given letter
def findSmallestLetterGreaterThanTarget(letters: Array[Char], givenLetter: Char): Char = {
var left = 0
var right = letters.length - 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
}
}
result
}
def main(args: Array[String]): Unit = {
val letters = Array('c', 'e', 'k', 'm')
val givenLetter = 'd'
val result = findSmallestLetterGreaterThanTarget(letters, givenLetter)
println(s"The smallest letter greater than '$givenLetter' is: $result")
}
}
/*
run:
The smallest letter greater than 'd' is: e
*/