public char nextGreatestLetter(char[] letters, char target)
{
// 先判断最后一个字母是否比目标字母大
if (letters[letters.length-1] <= target)
return letters[0];
int low = 0, high = letters.length-1; // 有序数组,二分
char ans = ' ';
while (low <= high)
{
int mid = (low + high) / 2;
if (letters[mid] <= target)
low = mid + 1;
else if (letters[mid] > target)
{
ans = letters[mid]; // 潜在的答案
high = mid - 1;
}
}
return ans;
}