python 寻找比目标字母大的最小字符

力扣744:寻找比目标字母大的最小字母; LeetCode744:Find Smallest Letter Greater Than Target 题目见文末 LeetCode link 思路及题解 手写二分 源码: class Solution: def nextGreatestLetter(self, letters: List[str], target: str) -> str: if letters[0] > target or letters[-1] <= target: return letters[0] start = 1 end = len 阅读详情

寻找比目标字母大的最小字符

给你一个排序后的字符列表 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"
 

提示:

letters长度范围在[2, 10000]区间内。
letters 仅由小写字母组成,最少包含两个不同的字母。
目标字母target 是一个小写字母。

题解

class Solution:
    def nextGreatestLetter(self, letters: List[str], target: str) -> str:
        length = len(letters)
        first = 0
        last = length - 1

        while last >= first:
            mid = first + (last-first)//2
            
            # 当等于target时 特殊情况处理
            if letters[mid] == target:
                # 处理有连续重复的数据一直到结尾情况
                while mid+1 < length and letters[mid+1] == letters[mid]:
                    mid += 1 
                return letters[mid+1] if mid+1 < length else letters[0]

            elif letters[mid] > target:
                last = mid - 1
            else:
                first = mid + 1
        
        # 处理一直不等于target时的情况
        return letters[0] if first > (length-1) else letters[first]

JHU ICBM DTI Atlas纤维束模板介绍 JHU ICBM DTI atlas 纤维束的定位与功能介绍 阅读详情

相关推荐

MatLab Desired port was :31515解决方案

前言:使用的MatLabR2022b今天突然出现了错误,在程序中打不开文件。后尝试了下面的方法,可以解决。后面还有另一种方法,上面方法如果行不通,大家可以尝试一下。搜索栏输入:firewall.cpl。找到相关项,右键属性,设置为允许。

qq_42212501的博客 1339

Leetcode 744. 寻找比目标字母大的最小字母 C++

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

weixin_43750513的博客 509

告别理论!手把手教你用Vivado 2020.2为ZYNQ PL端打造一个AXI4-Full读写DDR的IP核

本文详细介绍了如何使用Vivado 2020.2为ZYNQ PL端创建AXI4-Full主控IP核,实现高效读写DDR内存的实战指南。通过环境配置、IP核创建、系统集成到软件调试的全流程讲解,帮助开发者快速掌握AXI4-Full协议在ZYNQ平台上的应用,提升PL与PS协同工作的数据传输效率。

weixin_30300225的博客 467

744. 寻找比目标字母大的最小字母

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

allway2的博客 231

Windows C语言编程:Beep API实现蜂鸣器原理与实战

如果你在 Windows 上写过 C 语言程序,想给程序加个简单的提示音,第一个想到的可能是 printf("\a") 。这个转义字符确实能在某些终端里发出“嘀”的一声,但它太原始、太不可控了,而且很多时候根本没声音。那么,有没有一种更“Windows”、更可控、更专业的方法来让你的程序“说话”呢? 答案是肯定的,而且它比你想象的要强大和复杂。Windows 提供了一个名为 Beep 的 API 函数,专门用于生成蜂鸣声。你可能觉得这功能太简单,甚至有点过时——不就是让电脑“哔”一声吗?但恰恰是这个看似简单

weixin_34109408的博客 395

手把手复现论文:SVPWM过调制I区与II区算法仿真(附MATLAB源码)

本文详细介绍了SVPWM过调制I区与II区算法的MATLAB仿真实现,从理论推导到Simulink建模逐步解析。通过源码示例展示幅值补偿和六边形跟踪等关键技术,帮助电力电子研究者掌握过调制算法的核心实现方法,适用于电机控制、变频器等工业应用场景。

weixin_28739079的博客 530

leetcode 744. 寻找比目标字母大的最小字母(python)

给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母。 数组里字母的顺序是循环的。举个例子,如果目标字母target = 'z' 并且有序数组为 letters = ['a', 'b'],则答案返回 'a'。 示例: 输入: letters = ["c", "f", "j"] target = "a" 输出: "c" 输入:...

汤庆 851

Camera | 瑞芯微rk3568平台MIPI-CSI驱动:从设备树到V4L2框架的完整链路解析

本文深入解析瑞芯微rk3568平台MIPI-CSI驱动的完整链路,从设备树配置到V4L2框架集成。详细介绍了rk3568的MIPI-CSI驱动架构、设备树关键节点布局、驱动初始化流程及数据流路径,帮助开发者快速掌握摄像头控制器的调试与优化技巧,实现稳定的视频采集系统。

weixin_28703489的博客 290

Python描述 LeetCode 744. 寻找比目标字母大的最小字母

给你一个排序后的字符列表 ,列表中只包含小写英文字母。另给出一个目标字母 ,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:示例 1: 示例 2: 示例 3: 提示:由于这里是个循环大小,a比z大,所以扩展一倍列表,然后找第一个大的即可 Python描述二 也可以使用二分查找的左边界来做,锻炼下二分...

一起加油 484

cuda安装时出现错误 Unable to locate package cuda-toolkit-12-4

cuda安装时出现错误 Unable to locate package cuda-toolkit-12-4

4867

Tesla v100 4张显卡组装机安装vllm和ollama在Ubuntu系统上的安装---AI大模型系统从零开始0032

本文提供Ubuntu22.04系统下vLLM的完整安装指南,适配4×32G Tesla显卡的单机4卡张量并行部署。教程包含:1)硬件要求(Ubuntu22.04、NVIDIA驱动≥535、CUDA12.1+);2)NVIDIA驱动自动安装方法;3)Python3.10虚拟环境配置;4)vLLM官方预编译包一键安装;5)单机4卡启动Qwen3.6-27B模型的完整参数说明(含FP8量化、多进程并行等关键配置)。文末附分布式部署的Ray集群方案参考链接,适用于多机8卡场景。

添柴程序猿的专栏 180

LeetCode | 0744. Find Smallest Letter Greater Than Target寻找比目标字母大的最小字母【Python】

LeetCode 0744. Find Smallest Letter Greater Than Target寻找比目标字母大的最小字母【Easy】【Python】【二分】 Problem LeetCode Given a list of sorted characters letters containing only lowercase letters, and given a targe...

Wonz 552

【11】GD32H7xx MPU记录

GD32H7xx系列MPU内存保护单元模块的使用记录

madao1234的博客 877

二分查找的循环条件中'='应该加上吗

852. 山脉数组的峰顶索引 这里的问题是l&amp;lt;=r 搭配mid+1 mid-1 而l&amp;lt;r搭配mid class Solution: def peakIndexInMountainArray(self, A): &quot;&quot;&quot; :type A: List[int] :rtype: int &quot;&quot;&a

smart boy 631

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LeetCode-Python-744. 寻找比目标字母大的最小字母

给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母。 数组里字母的顺序是循环的。举个例子,如果目标字母target = 'z' 并且有序数组为 letters = ['a', 'b'],则答案返回 'a'。 示例: 输入: letters = ["c", "f", "j"] target = "a" 输出: "c" 输入:...

Keep Coding 858

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

744.寻找比目标字母大的最小字母(二分查找)

寻找比目标字母大的最小字母题目解题思路代码 题目 给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。 在比较时,字母是依序循环出现的。举个例子: 如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’ 提示: letters长度范围在[2, 10000]区间内。 letters 仅由小写字母组成,最少包含两个不同的字母。 目标字母targe

Hello World 490

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

LeetCode刷题之744.寻找比目标字母大的最小字母 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给定一个只包含小写字母的有序数组letters和一个目标字母target,寻找有序数组里面比目标字母大的最小字母。数组里字母的顺序是循环的。举个例子,如果目标字母target = ‘z’并且有...

胡萝卜 179

leetcode 744. 寻找比目标字母大的最小字母

给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母。 数组里字母的顺序是循环的。举个例子,如果目标字母target = 'z' 并且有序数组为 letters = ['a', 'b'],则答案返回 'a'。 示例: 输入: letters = ["c", "f", "j"] target = "a" 输出: "c" 输入: ...

skymeteorite 146

【LeetCode每日一题】——744.寻找比目标字母大的最小字母

给你一个字符数组 letters,该数组按非递减顺序排序,以及一个字符 target。letters 里至少有两个不同的字符。 返回 letters 中大于 target 的最小的字符。如果不存在这样的字符,则返回 letters 的第一个字符。

IronmanJay 1002

Python|寻找比目标字母大的最小字母问题解决方法

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。问题描述给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母...

算法与编程之美 576

寻找比目标字母大的最小字母

给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target ,请你寻找在这一有序列表里比目标字母大的最小字母。

Shan1205的博客 180

Leetcode 744.寻找比目标字母大的最小字母(Find Smallest Letter Greater Than Target)

Leetcode 744.寻找比目标字母大的最小字母 1 题目描述(Leetcode题目链接)   给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母。   数组里字母的顺序是循环的。举个例子,如果目标字母target = ‘z’ 并且有序数组为 letters = [‘a’, ‘b’],则答案返回 ‘a’。 输入: letters...

qq_39378221的博客 215

Leetcode0744. 寻找比目标字母大的最小字母(simple, 二分法)

Leetcode0744. 寻找比目标字母大的最小字母(simple, 二分法),Python题解

chenxy_bwave的专栏 484

python-leetcode-744. 寻找比目标字母大的最小字母

该方法时间复杂度为 O(log⁡n),适用于大规模数据集。已经大于等于所有字符,返回数组的第一个字符。

Lucy_wzw的博客 286
上一篇: python 猜数字大小
下一篇: python 搜索插入位置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶知秋的BLOG

创作不易 请多多关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值