【LeetCode(Java) - 744】寻找比目标字母大的最小字母
【LeetCode(Java) - 744】寻找比目标字母大的最小字母
文章目录
1、题目描述
2、解题思路
3、解题代码
1、题目描述
2、解题思路
??由于字符列表有序,且找出比目标字母大的最小字母,很明显采用二分查找。
??区间呈左开右闭形式。
??当中间字符小于等于目标字符,则更新左边界为 mid + 1;
??当中间字符大于目标字符时,可能它就是比目标字母大的最小字母,更新右边界为 mid;
??当结束 while 循环时,left == right,此时 left 就是比目标字母大的最小字母的索引,因为字母是循环出现的,需要和字符列表取模。
3、解题代码
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 (l