news 2026/2/15 11:43:31

LeetCode 744.寻找比目标字母大的最小字母:遍历或二分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 744.寻找比目标字母大的最小字母:遍历或二分

【LetMeFly】744.寻找比目标字母大的最小字母:遍历或二分

力扣题目链接:https://leetcode.cn/problems/find-smallest-letter-greater-than-target/

给你一个字符数组letters,该数组按非递减顺序排序,以及一个字符targetletters至少有两个不同的字符。

返回letters中大于target的最小的字符。如果不存在这样的字符,则返回letters的第一个字符。

示例 1:

输入:letters = ['c', 'f', 'j'],target = 'a'输出:'c'解释:letters 中字典上比 'a' 大的最小字符是 'c'。

示例 2:

输入:letters = ['c','f','j'], target = 'c'输出:'f'解释:letters 中字典顺序上大于 'c' 的最小字符是 'f'。

示例 3:

输入:letters = ['x','x','y','y'], target = 'z'输出:'x'解释:letters 中没有一个字符在字典上大于 'z',所以我们返回 letters[0]。

提示:

  • 2 <= letters.length <= 104
  • letters[i]是一个小写字母
  • letters非递减顺序排序
  • letters最少包含两个不同的字母
  • target是一个小写字母

解题方法:二分或遍历

二分:二分查找第一个大于target的元素位置即可(upper_bound

遍历:从头到尾遍历就好。

  • 时间复杂度:二分O ( l o g n ) O(log n)O(logn)遍历O ( n ) O(n)O(n)
  • 空间复杂度:O ( 1 ) O(1)O(1)

AC代码

C++和Python用的二分(因为调库很方便),Go、Java和Rust使用的遍历。

C++
/* * @LastEditTime: 2026-01-31 13:50:40 */classSolution{public:charnextGreatestLetter(vector<char>&letters,chartarget){vector<char>::iterator it=upper_bound(letters.begin(),letters.end(),target);returnit==letters.end()?letters[0]:*it;}};
Python
''' LastEditTime: 2026-01-31 13:56:59 '''fromtypingimportListfrombisectimportbisect_rightclassSolution:defnextGreatestLetter(self,letters:List[str],target:str)->str:idx=bisect_right(letters,target)returnletters[0]ifidx==len(letters)elseletters[idx]
Java
/* * @LastEditTime: 2026-01-31 14:01:16 */classSolution{publiccharnextGreatestLetter(char[]letters,chartarget){for(inti=0;i<letters.length;i++){if(letters[i]>target){returnletters[i];}}returnletters[0];}}
Go
/* * @LastEditTime: 2026-01-31 13:59:57 */packagemainfuncnextGreatestLetter(letters[]byte,targetbyte)byte{for_,c:=rangeletters{ifc>target{returnc}}returnletters[0]}
Rust
/* * @LastEditTime: 2026-01-31 14:03:50 */implSolution{pubfnnext_greatest_letter(letters:Vec<char>,target:char)->char{foriin0..letters.len(){ifletters[i]>target{returnletters[i];}}letters[0]}}
  • 执行用时分布0ms击败100.00%
  • 消耗内存分布2.72MB击败97.14%

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/6 15:25:06

吐血推荐8个AI论文软件,继续教育学生轻松搞定毕业论文!

吐血推荐8个AI论文软件&#xff0c;继续教育学生轻松搞定毕业论文&#xff01; AI工具&#xff0c;为论文写作注入新活力 在当前的学术环境中&#xff0c;继续教育学生面临着越来越高的论文写作要求。尤其是在毕业论文这一关键环节&#xff0c;如何高效地完成高质量的论文&am…

作者头像 李华
网站建设 2026/2/3 11:56:24

基于R语言的贝叶斯网络模型的实践技术应用;R语言实现Bayesian Network分析的基本流程

强大在现代的生态、环境以及地学研究中&#xff0c;变量和变量间的因果关系推断占据了非常重要的地位。在实践中&#xff0c;变量间的因果关系研究往往求助于昂贵的实验&#xff0c;但所得结果又经常与天然环境中的实际因果联系相差甚远。统计学方法是研究天然环境中变量间关系…

作者头像 李华
网站建设 2026/2/14 23:46:02

AI Agent决策机制深度解析:从输入指令到自我进化的完整流程

文章解析了AI Agent的决策运行机制&#xff0c;揭示其"感知→思考→行动→反思→再优化"的闭环过程。通过理解目标、调取记忆、制定计划、反思调整四个步骤&#xff0c;结合五大模块协同工作&#xff0c;使AI具备上下文感知、动态适应和持续学习三大特质&#xff0c;…

作者头像 李华
网站建设 2026/2/9 2:55:45

Shell脚本的实用书籍大纲

文章目录 我们正在编写一套Shell脚本的实用书籍,目标是让读者能够通过实践掌握Shell脚本在企业环境中的应用。这套书分为三册,每册约600页,侧重基础、实操和企业级应用。下面是大纲的详细优化和细化,特别注重小而精的案例,每个知识点都配有实际可操作的例子,并且这些例子…

作者头像 李华
网站建设 2026/2/14 3:35:02

Android 系统层学习目录

知识目录 Android 系统层到底是什么&#xff1f;AOSP / Framework / AMSWMSPMS 一次讲清为什么有的 Android 架构图是 4 层&#xff0c;有的却是 5 层&#xff1f;Android Native 层是如何运行 ART 与 Native Libraries 的&#xff1f;Binder 是如何贯穿 ART / Native / Kernel…

作者头像 李华
网站建设 2026/2/11 4:12:40

热电联产系统智能经济调度:深度强化学习之路

深度强化学习电气工程复现文章&#xff0c;适合小白学习 关键词&#xff1a;热电联产经济调度 深度强化学习 近端策略优化 编程语言&#xff1a;python平台 主题&#xff1a;热电联产系统智能经济调度&#xff1a;一种深度强化学习方法 内容简介&#xff1a; 本文提出了一种用于…

作者头像 李华