0744. Find Smallest Letter Greater Than Target

0744. Find Smallest Letter Greater Than Target #

题目 #

  • 给定按非递减顺序排序的字符数组 letters 以及一个字符 targetletters 里至少有两个不同的字符。

  • 返回 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];
    }
}