/**
* Problem: LeetCode 744 - Find Smallest Letter Greater Than Target
* Difficulty: Easy
* Language: Java
* Author: CodeByTushu
*/
class Solution {
public char nextGreatestLetter(char[] letters, char target) {
int left = 0;
int right = letters.length;
// Perform upper bound binary search
while (left < right) {
int mid = left + (right - left) / 2;
if (letters[mid] <= target) {
left = mid + 1;
} else {
right = mid;
}
}
// Wrap around to letters[0] if no character is strictly greater than target
return letters[left % letters.length];
}
}
"""
Problem: LeetCode 744 - Find Smallest Letter Greater Than Target
Difficulty: Easy
Language: Python
Author: CodeByTushu
"""
from typing import List
class Solution:
def nextGreatestLetter(self, letters: List[str], target: str) -> str:
left, right = 0, len(letters)
while left < right:
mid = left + (right - left) // 2
if letters[mid] <= target:
left = mid + 1
else:
right = mid
return letters[left % len(letters)]
/**
* Problem: LeetCode 744 - Find Smallest Letter Greater Than Target
* Difficulty: Easy
* Language: C++
* Author: CodeByTushu
*/
#include <vector>
using namespace std;
class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {
int left = 0;
int right = letters.size();
while (left < right) {
int mid = left + (right - left) / 2;
if (letters[mid] <= target) {
left = mid + 1;
} else {
right = mid;
}
}
return letters[left % letters.size()];
}
};
/**
* Problem: LeetCode 744 - Find Smallest Letter Greater Than Target
* Difficulty: Easy
* Language: JavaScript
* Author: CodeByTushu
*/
/**
* @param {character[]} letters
* @param {character} target
* @return {character}
*/
var nextGreatestLetter = function(letters, target) {
let left = 0;
let right = letters.length;
while (left < right) {
const mid = (left + right) >> 1;
if (letters[mid] <= target) {
left = mid + 1;
} else {
right = mid;
}
}
return letters[left % letters.length];
};