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

1 Answer

0 votes
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

*/

 



answered Sep 22 by avibootz
...