news 2026/9/2 20:39:54

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/8/27 22:00:23

Fluke福禄克1550C 1555绝缘电子测试仪

福禄克1550C绝缘电阻测试仪&#xff1a;高压设备的安全守护者 一、核心功能与基础参数 福禄克1550C是一款专为高压设备设计的绝缘电阻测试仪&#xff0c;测试电压覆盖250V至5000V&#xff0c;可精准测量0.01μF至15μF的电容值&#xff0c;以及1nA至2mA的漏电流。其核心参数包括…

作者头像 李华
网站建设 2026/8/27 22:00:43

Java 25 发布:更简洁、更高效、更现代!我们先来学习下~

Java 25 已经正式发布。作为 长期支持&#xff08;LTS&#xff09;版本&#xff0c;它不仅稳定&#xff0c; 还带来了大量新特性。对于开发者来说&#xff0c;这意味着未来几年可以放心使 用&#xff0c;而新手也能通过这些更新更轻松地入门 Java。Java 25 的更新覆盖了 语言语…

作者头像 李华
网站建设 2026/8/31 16:32:46

工业机械手设计

工业机械手设计 一、设计背景与意义 工业机械手是自动化产线的核心装备&#xff0c;广泛应用于工件搬运、装配、上下料等场景&#xff0c;可替代人工完成重复性、高强度、高危作业。传统工业机械手存在定位精度不足、负载能力有限、运动灵活性差等问题&#xff0c;难以适配复…

作者头像 李华
网站建设 2026/9/1 22:01:33

大模型榜单周报(2026/01/31)

1. 本周概览 本周大模型行业迎来多项重要进展&#xff0c;百度文心5.0正式发布&#xff0c;通义千问开源Qwen3-TTS语音模型&#xff0c;Kimi发布并开源K2.5模型。榜单方面变化剧烈&#xff0c;MiMo V2 Flash (free)遭遇断崖式下跌&#xff0c;DeepSeek V3.2强势跃升&#xff0c…

作者头像 李华
网站建设 2026/9/2 6:24:12

计算机毕业设计springboot考研社区网站 SpringBoot驱动的考研互助交流平台设计与实现 基于SpringBoot的考研信息共享与二手交易网站开发

计算机毕业设计springboot考研社区网站mk9kd&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 考研热度连年攀升&#xff0c;考生对资讯、资料、经验交流的即时性与集中度要求越来…

作者头像 李华
网站建设 2026/8/25 15:45:58

深度解析:智能体系统成熟后,组织面临的隐蔽风险——“创新高原期”

摘要: 随着大模型驱动的智能体从单一工具演变为高度自洽的内部协同生态,企业正面临一种隐蔽的风险——“生态位侵占”。当AI能够为95%的常规问题提供“足够好”的答案时,人类员工的认知空间被极度挤压,导致探索性动力的萎缩与颠覆性思维的断裂。本文旨在探讨AI生态如何通过…

作者头像 李华