[LeetCode - Python]744.寻找比目标字母大的最小字母(Easy)

news/2025/2/24 22:14:06

题目:

744.寻找比目标字母大的最小字母(Easy)
在这里插入图片描述

代码:

一开始用纯左闭右开二分,忽略两种情况:
1.遗漏均不满足,返回Leeters[0],已提前加判断;
2.由于左闭右开适用于判断,等于此处的位置,因此若存在相同的,此方法返回的是相等位置;而本题希望返回比相等更大一个元素,因此在左闭右开基础上,把letters[mid] = target也归到需要向右搜索即可。

python">class Solution:
    def nextGreatestLetter(self, letters: List[str], target: str) -> str:
        # 二分法,左闭右开,结果不对;
        # 看了下出差原因,是因为当有相同时候,返回的值小一位;
        # 因此采用左闭,右闭
        # 妄自揣测下:字符的ASCII码 不同导致可以直接对字符进行比较;
        left , right = 0 , len(letters)
        if target >= letters[-1]:               # 如果大于Letters最后一个元素直接返回Letters[0] 
            return letters[0]

        while left < right:
            mid = left + (right-left)//2
            if letters[mid] <= target :          # 往右搜索,左闭右开
                left = mid + 1
            else :
                right = mid 
        # 一开始默写纯左闭右开,发现:1.遗漏均不满足,返回Leeters[0],已提前加判断;
        # 2.由于左闭右开适用于判断,等于此处的位置,因此若存在相同的,此方法返回的是相等位置;
        # 而本题希望返回比相等更大一个元素,因此在左闭右开基础上,把letters[mid] = target也归到需要向右搜索即可。
        return letters[left]

在这里插入图片描述


http://www.niftyadmin.cn/n/4924661.html

相关文章

一、 Mysql索引

一、 Mysql索引 001 Mysql如何实现的索引机制&#xff1f; MySQL中索引分三类&#xff1a;B树索引、Hash索引、全文索引 002 InnoDB索引与MyISAM索引实现的区别是什么&#xff1f; MyISAM的索引方式都是非聚簇的&#xff0c;与InnoDB包含1个聚簇索引是不同的。 在InnoDB存储引…

接龙序列(14届)

对于一个长度为 K 的整数数列&#xff1a;A1,A2,...,AK&#xff0c;我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1的末位数字 (2≤i≤K2≤i≤K)。 例如 12,23,35,56,61,11 是接龙数列&#xff1b;12,23,34,56 不是接龙数列&#xff0c;因为 56 的首位数字不等于 34…

网络安全 Day27-运维安全项目-堡垒机部署

运维安全项目-堡垒机部署 1. 运维安全项目-架构概述2. 运维安全项目之堡垒机2.1 堡垒机概述2.2 堡垒机选型2.3 环境准备2.4 部署Teleport堡垒机2.4.1 下载与部署2.4.2 启动2.4.3 浏览器访问teleport2.4.4 进行配置2.4.5 安装teleport客户端 2.5 teleport连接服务器 1. 运维安全…

spring AOP两种动态代理

本文开始 1.什么是动态代理&#xff1f; 动态代理&#xff1a;本来是通过直接访问目标对象的&#xff0c;但是找个代理对象替你进行访问目标对象&#xff0c;这就是动态代理过程&#xff1b; 例如&#xff1a;买饭作为目标对象&#xff0c;自己不想亲自跑腿&#xff0c;就点个…

2208. 将数组和减半的最少操作次数

2208. 将数组和减半的最少操作次数 给你一个正整数数组 nums 。每一次操作中&#xff0c;你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。&#xff08;注意&#xff0c;在后续操作中你可以对减半过的数继续执行操作&#xff09; 请你返回将 nums 数组和 至少 减少一…

软件测试工程师面试如何描述自动化测试是怎么实现的?

软件测试工程师面试的时候&#xff0c;但凡简历中有透露一点点自己会自动化测试的技能点的描述&#xff0c;都会被面试官问&#xff0c;那你结合你的测试项目说说自动化测试是怎么实现的&#xff1f;一到这里&#xff0c;很多网友&#xff0c;包括我的学生&#xff0c;也都一脸…

使用威胁建模进行DevSecOps实践丨IDCF

作者&#xff1a; 姚圣伟&#xff08;现就职天津引元科技 天津市区块链技术创新中心&#xff09; 研发效能&#xff08;DevOps&#xff09;工程师认证学员 一、从DevOps到 DevSecOps DevOps 最开始最要是强调开发和运维的协作与配合&#xff0c;至今&#xff0c;已不仅仅涉…

IL汇编 ldarg 指令学习

IL汇编代码&#xff0c; .assembly extern mscorlib {} .assembly MathLib {.ver 1 : 0 : 1 : 0 }.module MathLib.dll.namespace MyMath { .class public ansi auto MathClass extends [mscorlib]System.Object{ .method public int32 GetSquare(int32) c…