2022-3-20 Leetcode744. 寻找比目标字母大的最小字母
作者:互联网
class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {
if(target < letters[0] || letters.back() <= target)
return letters[0];
letters.erase(unique(letters.begin(),letters.end()),letters.end());
//这方法真的是绝了,每天一个去重小技巧。
int l = 0,r = letters.size()-1;
while(l < r){
int mid = (r-l)/2 + l;
if(letters[mid] == target){
return letters[mid+1];
}
else if(letters[mid] > target){
r = mid;
}
else {
l = mid+1;
//左开右闭区间
}
}
return letters[l];
}
};
如何做到 vector 去重?
vector<int> v;
sort(v.begin(),v.end());
v.erase(unique(v.begin(), v.end()), v.end());
参考文章:vector去除重复的元素
标签:letters,target,字母,end,mid,char,vector,2022,20 来源: https://blog.csdn.net/weixin_51187533/article/details/123610700