题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个非递减顺序的字符数组,和一个字符 target,求数组中字典序大于 target 字符中最小的字符。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {
int left = 0, right = letters.size();
while (left < right) {
int mid = left+(right-left)/2;
if (letters[mid] < target+1) {
left = mid+1;
}
else {
right = mid;
}
}
//cout << left << endl;
return (left < letters.size() && letters[left] > target) ? letters[left] : letters[0];
}
};