744. 寻找比目标字母大的最小字母
给你一个字符数组 letters,该数组按非递减顺序排序,以及一个字符 target。letters 里至少有两个不同的字符。
返回 letters 中大于 target 的最小的字符。如果不存在这样的字符,则返回 letters 的第一个字符。
答案
class Solution {
public char nextGreatestLetter(char[] letters, char target) {
int l = 0, r = letters.length - 1, m;
if (letters[r] <= target) {
return letters[0];
}
while(l <= r) {
m = (l + r) / 2;
if (letters[m] <= target) {
l = m + 1;
} else {
r = m - 1;
}
}
return letters[l];
}
}