题目描述
解法:
二分查找,结束后再次 check 一下,如果不满足,则返回数组首元素
class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {
int low = 0, high = letters.size() - 1;
while (low < high)
{
int mid = (low + high) / 2;
if (letters[mid] > target) high = mid;
else low = mid + 1;
}
return letters[high] > target ? letters[high] : letters[0];
}
};