要求:有序字母表。找比target大的第一个字符
思路:找二分的左边界,返回left,mid处的值等于target时要动左边界,因为动右边界可能右边也小于target了
class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {
int n=letters.size();
if(target>=letters[n-1])return letters[0];
int left=0,right=n-1;
while(left<=right){
int mid=left+(right-left>>1);
if(letters[mid]<=target)left=mid+1;
else if(letters[mid]>target)right=mid-1;
}
return letters[left];
}
};