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

1 Answer

0 votes
// Function to find the smallest letter greater than the given letter
function findSmallestLetterGreaterThanTarget($letters, $given_letter) {
    $left = 0;
    $right = count($letters) - 1;
    $result = $letters[0]; // Default to the first letter 

    while ($left <= $right) {
        $mid = $left + intdiv($right - $left, 2);

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

    return $result;
}

$letters = ['c', 'e', 'k', 'm'];
$given_letter = 'd';

$result = findSmallestLetterGreaterThanTarget($letters, $given_letter);

echo "The smallest letter greater than '{$given_letter}' is: {$result}\n";



/*
run:

The smallest letter greater than 'd' is: e

*/

 



answered Sep 21 by avibootz
edited Sep 21 by avibootz
...