【LeetCode刷题】744. 寻找比目标字母大的最小字母

744. 寻找比目标字母大的最小字母(点击跳转LeetCode)

给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。
在比较时,字母是依序循环出现的。举个例子:
如果目标字母target = 'z'并且字符列表为letters = ['a', 'b'],则答案返回'a'

示例:

输入:
letters = ["c", "f", "j"]
target = "a"
输出: "c"
输入:
letters = ["c", "f", "j"]
target = "c"
输出: "f"
输入:
letters = ["c", "f", "j"]
target = "d"
输出: "f"
输入:
letters = ["c", "f", "j"]
target = "g"
输出: "j"
输入:
letters = ["c", "f", "j"]
target = "j"
输出: "c"
输入:
letters = ["c", "f", "j"]
target = "k"
输出: "c"

题解

语言:C++
思路:二分法

class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {
int l = 0;
int r = letters.size() - 1;
if(letters[r] <= target){
return letters[l];
}
while(l < r){
int mid = l + r >> 1;
if(letters[mid] > target){
r = mid;
}else{
l = mid + 1;
}
}
return letters[l] > target ? letters[l] : letters[l+1];
}
};
posted @   顾北清  阅读(39)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示