0744. Find Smallest Letter Greater Than Target #
题目 #
-
给定按非递减顺序排序的字符数组
letters
以及一个字符target
。letters
里至少有两个不同的字符。 -
返回
letters
中大于target
的最小的字符。如果不存在这样的字符,则返回letters
的第一个字符。
思路 #
二分 #
代码 #
二分 #
class Solution {
public char nextGreatestLetter(char[] letters, char target) {
int left = 0, right = letters.length;
while (left < right) {
int mid = left + (right - left) / 2;
if (letters[mid] > target) right = mid;
else left = mid + 1;
}
return right == letters.length ? letters[0] : letters[right];
}
}