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