【笔记】力扣 744. 寻找比目标字母大的最小字母——二分查找第一个大于目标的元素

news/2025/4/2 22:55:41/文章来源:https://www.cnblogs.com/xiins/p/18804303

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

简单

提示

给你一个字符数组 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 是一个小写字母

题解

class Solution {
public:char nextGreatestLetter(vector<char>& letters, char target) {int left=0;int right=letters.size()-1;while (left<=right) {int mid=left+(right-left)/2;if (letters[mid]<=target) { // 如果letters[mid]小于或等于target,更新查找范围(右侧)。题目要找第一个【大于target】的元素,因此这里是<=。left=mid+1;} else { // 如果letters[mid]大于target,更新查找范围(左侧)right=mid-1;}}return left < letters.size() ? letters[left] : letters[0];// ★注意这里是letters[left]而不是right。while循环在right<left时(right=left-1)终止,在循环中,只要letters[mid]小于等于target,就会继续向右查找,直到第一个大于target的元素。// 而right 指针指向的是最后一个小于等于 target 的元素的位置。在查找过程中,只要中间元素大于 target,right 就会向左移动,最终停留在最后一个小于等于 target 的元素位置。// 总结:题目要求找出第一个符合p条件的数,则最后返回 【不符合p时更新的(即另一个)left或right】对应的数}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/909549.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法备案没产品可以申请吗?

算法备案复审阶段涉及产品信息填报,所以一度让一些开发者有这样的错误认知:只有等产品要上线了,才能火急火燎地去申请算法备案。但这个观点其实是错误的,其实开发者也可以在没有具体产品的情况下发起算法备案申请。只要材料合法合规,也能取得备案号。下面是一些具体信息介…

工业通信协议“牵手密码”,Ethernet IP转Profinet网关的桥梁魔法

在当前工业自动化领域,实时以太网技术已经成为至关重要的通信标准之一。Profinet和EtherNetIP作为两种广泛采用的实时以太网协议,各自拥有其独特的性能优势和适用场景。本文旨在探讨稳联技术Profinet转EtherNetIP网关WL-PN-EIPM的功能,并评估其在节能实施与监测方面的应用价…

LeetCode刷题-动态规划-爬楼梯

LeetCode刷题-动态规划-爬楼梯 题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。1 阶 + 1 阶 2 阶 示例 2:输入:n = 3 输出:3 解释:有…

【攻防世界】Hidden-Message

⭕、知识点 流量分析/端口号隐写/tshark/json文件处理 一、题目二、解法 1、端口号个位呈现有规律的01交替,可能隐藏信息。 2、为便于提取信息,使用kali的tshark对其进行转存 tshark -r input.pcap -T json > output.txt注意在使用tshark时应避免使用root账户 否则会出现如…

022 props组件交互

.vue 的文件,就是一个组件,每个.vue 文件就是每个页面html 的时候,每个页面都是一个 htmlvue2 和 vue3 的生命周期钩子是不同的components:常用的组件,公共的组件views:用来存放页面的新建项目,删除HelloWorld.vue components也删除views删除 这个index.js删除 这两页面…

客户端打开BI报表提示 Your current browser is not supported”

win7的打开会报这个问题, win11可以正常打开, 应该是环境差异导致。

Linux-常用命令(3)

Linux-常用命令(3)Linux常用命令 查看文件 cat命令 cat命令可以创建一个或者多个文件、查看文件内容、连接文件,常用于查看文件内容 cat 文件名 //显示文件内容 cat -n 文件名 //显示文件内容,并显示行号 cat - 文件名 //显示文件内容(包括不可见字符)系统时间 date命令…

【EI】机器人与传感器网络国际会议(RoSeN 2025)

第一届机器人与传感器网络国际会议(RoSeN 2025)将于2025年5月16-18日在贵阳举行,会议将围绕机器人展开的在机器人、人机交互、传感、智能控制等相关研究领域,邀请国内外数位在此领域学术卓越的学者专家做相关致辞与报告,共同探讨机器人发展最新发展方向及行业前沿动态。会…

[转]玩客云刷armbian后根目录扩展

地址:玩客云刷armbian后根目录扩展_IT码迹最近拼夕夕搞了个玩客云,自己懒得刷机(太麻烦,还要绝育什么的)所以直接买的刷好的,商家送了个U盘32G已经做好了镜像。 商家镜像刷了不少东西除了openwrt,其他几个docker镜像都是armbian比较好用的。不过在我要安装其他插件的时候发…

生成未来:解码智能技术驱动的产业革命

在人工智能浪潮的推动下,AI生图与视频技术正以惊人的速度重塑人类的生产方式。从一张图片的生成到一段视频的秒级渲染,技术的突破不仅解放了生产力,更催生了全新的商业生态。这场变革的核心,在于用算法替代重复劳动,以智能激发无限创意,而这一切仅仅是开端。 一、技术突破…

云终端远程自动调用开关机功能

云桌面项目由于缺少一键关机和开机功能,通过Linux实现自动化调用开机和关机 1、收集所有终端信息的MAC地址收集方式可以采用ipscan25.exe也可以通过cmd下arp -a方式收集MAC地址,同时记录MAC可以IP地址的对应关系。2、所有终端安装openssh使用系统自带或者下载OpenSSH-Win64-v…