news 2026/6/25 19:39:10

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/6/20 11:51:32

做大屏、做海报、做分析,一套开源数据可视化系统全搞定

&#x1f482; 个人网站: IT知识小屋&#x1f91f; 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 简介技术栈功能列表应用场景UI界面快速上手开源地址&使用手册…

作者头像 李华
网站建设 2026/6/23 21:55:25

基于51单片机的免布线遥控开关的设计

基于51单片机的免布线遥控开关的设计 一、设计背景与意义 传统有线开关存在布线繁琐、改造难度大、灵活性差等问题&#xff0c;尤其在老旧住宅、临时用电场景中&#xff0c;重新布线成本高且易破坏装修。市面上的无线遥控开关多采用专用射频模块&#xff0c;存在遥控距离短、…

作者头像 李华
网站建设 2026/6/19 13:37:29

基于51单片机的空气质量报警器设计

基于51单片机的空气质量报警器设计 一、设计背景与意义 空气质量监测是室内环境健康管理的核心需求&#xff0c;传统空气质量监测设备存在功能单一、响应慢、价格高的问题&#xff0c;而简易报警器多仅能检测单一污染物&#xff0c;难以满足家庭、办公室等场景的综合监测需求。…

作者头像 李华
网站建设 2026/6/22 17:08:06

英文论文AI率怎么查?英文AI率高怎么办?这几个网站快收藏!

现在英文论文基本都需要检测论文AI率了&#xff0c;但是针对英文论文来说&#xff0c;还是需要用专门的网站检测论文AI率&#xff0c;今天给大家分享两个可以查英文论文AI率的网站&#xff0c;和一个降低英文论文AI率的网站。 一、Turnitin国际版AI Turnitin国际版AI检测&…

作者头像 李华