先说句其他的话:从今天开始 我想每天把leetcode做的题都记录一下 第一是因为我身边的一位大牛有在写 (以后啥时候心血来潮可能会@他 哈哈哈)其次是也是想记录一下现在的情况 不然怕回过头来看自己这段时间的学习像是啥也没干
好的 不多说废话了 我的学习记录就从一道简单题开始 :)
1.题目
通过率还是很高的 这题目还是很明显是用二分就可以求解出来的 不过是需要特判一下 我的判断语句是找到r - l == 1时退出循环,因为没有必要继续了 其次是党mid值小于等于target的时候需要继续往后找 其他的就没什么了 接下来贴上代码(c++写的)
class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {
int i = 0;
int len = letters.size();
int l = 0, r = len - 1;
int mid = 0;
while(r - l != 1){
mid = (l + r) / 2;
if(letters[mid] > target) r = mid;
else if(letters[mid] <= target) l = mid;
}
if(letters[r] <= target) return letters[0];
if(letters[l] > target) return letters[l];
else return letters[r];
}
};