744. 寻找比目标字母大的最小字母 : 简单二分运用题

简介: 744. 寻找比目标字母大的最小字母 : 简单二分运用题

网络异常,图片无法展示
|


题目描述



这是 LeetCode 上的 744. 寻找比目标字母大的最小字母 ,难度为 简单


Tag : 「二分」


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


在比较时,字母是依序循环出现的。举个例子:


如果目标字母 target = 'z' 并且字符列表为 letters = ['a', 'b'],则答案返回 'a'


示例 1:


输入: letters = ["c", "f", "j"],target = "a"
输出: "c"
复制代码


示例 2:


输入: letters = ["c","f","j"], target = "c"
输出: "f"
复制代码


示例 3:


输入: letters = ["c","f","j"], target = "d"
输出: "f"
复制代码


提示:


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


二分



给定的数组「有序」,找到比 targettarget 大的最小字母,容易想到二分。


唯一需要注意的是,二分结束后需要再次 check,如果不满足,则取数组首位元素。


代码:


class Solution {
    public char nextGreatestLetter(char[] letters, char target) {
        int n = letters.length;
        int l = 0, r = n - 1;
        while (l < r) {
            int mid = l + r >> 1;
            if (letters[mid] > target) r = mid;
            else l = mid + 1;
        }
        return letters[r] > target ? letters[r] : letters[0];
    }
}
复制代码


  • 时间复杂度:O(\log{n})O(logn)
  • 空间复杂度:O(1)O(1)


最后



这是我们「刷穿 LeetCode」系列文章的第 No.744 篇,系列开始于 2021/01/01,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先把所有不带锁的题目刷完。


在这个系列文章里面,除了讲解解题思路以外,还会尽可能给出最为简洁的代码。如果涉及通解还会相应的代码模板。


为了方便各位同学能够电脑上进行调试和提交代码,我建立了相关的仓库:github.com/SharingSour…


在仓库地址里,你可以看到系列文章的题解链接、系列文章的相应代码、LeetCode 原题链接和其他优选题解。

相关文章
|
安全 算法 Oracle
「隐语小课」Blazing Fast PSI 协议解读
「隐语小课」Blazing Fast PSI 协议解读
1306 0
|
开发工具 git
[github初学者教程] 分支管理-以及问题解决
[github初学者教程] 分支管理-以及问题解决
173 0
|
7月前
|
机器学习/深度学习 自然语言处理 算法
千星计划视频号爆单系统开发
“千星计划”视频号爆单系统是基于视频号平台的创新电商模式,通过联合头部商家和达人资源,推动橱窗销售额增长。用户开通橱窗后,可实现全自动报单、出单,无需囤货,商品由厂家直接发货。系统具备自动化操作和社交裂变效应两大亮点,涵盖内容生成、发布优化、数据分析及分享激励机制,极大降低电商创业门槛,助力用户轻松实现电商梦想。
374 0
|
存储 算法
【数据结构】稀疏矩阵和队列
【数据结构】稀疏矩阵和队列
126 0
|
编解码 Linux API
Linux ALSA驱动之三:PCM创建流程源码分析(基于Linux 5.18)上
Linux ALSA驱动之三:PCM创建流程源码分析(基于Linux 5.18)上
Linux ALSA驱动之三:PCM创建流程源码分析(基于Linux 5.18)上
|
机器学习/深度学习 传感器 算法
【并联有源电力滤波器】基于pq理论的并联有源电力滤波器(Simulink)
【并联有源电力滤波器】基于pq理论的并联有源电力滤波器(Simulink)
|
存储 关系型数据库 MySQL
02-Mysql进阶篇
02-Mysql进阶篇
软件技术专业-就业提示(二、测试工程师)(下)
软件技术专业-就业提示(二、测试工程师)(下)
156 0
软件技术专业-就业提示(二、测试工程师)(下)
|
数据采集 容灾 网络协议
PolarDB-X 1.0-技术白皮书-解决方案与客户案例
异地多活场景下的数据库方案 方案背景 随着云计算的蓬勃发展,越来越多信息系统选择部署在云计算环境下,因此基于云产品为信息系统的服务能力和数据质量提供保障尤为重要。为了防止灾难性的故障如火灾、洪水、地震、区域电力中断或者人为破坏等对信息系统造成不可挽回的破坏,需要构建容灾系统来保障信息系统的可用性和安全性。 2007年,国务院信息化办公室联合银行、电力、民航、铁路、证券等八大重点行业,制定发布了国家标准GB/T20988-2007《信息系统灾难恢复规范》,明确规定了容灾能力的6个等级要求。企业在构建容灾系统时往往会参考国标等级,或者以此作为合规要求。然而,大部分传统容灾方案如同城容灾、同城双活
389 0
PolarDB-X 1.0-技术白皮书-解决方案与客户案例
洛谷 P3128 [USACO15DEC]最大流Max Flow
题目描述 Farmer John has installed a new system of  pipes to transport milk between the  stalls in his barn (), conveniently numbered .
1042 1