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

本题是二分查找板块中的一个简单题目,不过二分查找比较注重于细节。所以我会着重点出来。

思考:从查找字母这一个要求来说,我们要么选择遍历,要么选择二分查找,因为这里是非递减的,那么我们自然的就会想到用二分查找的方法去查找,所以就忽略遍历这一个比较笨的法子。

那么我们需要找的并不是数组中对应的字符,而是比目标字符大一点的第一个最小字母。这里就说明了我们的判断条件并不简单的就是三个if else 了,而是判断区间。

那么,就开始来从题目中判断条件。我们看到它说的是第一个大于它的字母,那么这个判定条件就应该满足:letters[mid]>target这样才行,并不是letters[mid]>=target,请读者细细品味这一点。

然后在循环结束之后,我们就开始进行判断当前指向的字母是否是我们需要的字母,这里还需要再次判断正确性,如果是,那么就直接返回这个字母;不是的话,那么按照题目要求我们需要返回letters[0]。

注意:在最后判断的时候,如果说当前的字母是与目标字母相同的情况,我们也是返回letters[0],因为题目中要求的是大于它的字母,并不包括等于这个条件的字母。

class Solution {
public:char nextGreatestLetter(vector<char>& letters, char target) {int left=0;int right=letters.size()-1;while(left<right){int mid=(right+left)/2;if(letters[mid]>target)right=mid;elseleft=mid+1;}if(letters[right]<=target)return letters[0];else return letters[right];}
};

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

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

相关文章

Flink 动态表 (Dynamic Table) 解读

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

鸿蒙 WiFi 扫描流程(2)

接着上篇没有记录完的&#xff0c;我们继续梳理&#xff0c;需要上一篇做基础的请看&#xff1a;鸿蒙 WiFi 扫描流程&#xff08;1&#xff09; 上一篇我们讲到 scan_service.cpp 里面的 SingleScan 方法&#xff0c;继续这个方法往下看&#xff1a; // foundation/communicat…

Python基础知识:Python函数的定义、创建与调用

Python本质上是一种编程语言&#xff0c;通过编写运行代码的方式实现工作目标。读者可以想象&#xff0c;如果针对机器学习或数据统计分析的每种方法或统计量计算都要用户自行编写代码&#xff0c;那么显然在很多情况下是无法满足用户便捷开展分析的要求的&#xff0c;用户体验…

docer compose部署simple-docker

简介 一个看似简陋但是功能足够用的docker管理工具 安装 创建目录 mkdir -p /opt/simple-docker cd /opt/simple-docker 创建并启动容器 编写docker-compose.yml文件,内容如下 version: 3 services: redis: image: redis:latest restart: always web: image: registry.cn-…

HR看了都想点开的简历:吸睛模板+撰写技巧

工作致富的第一步&#xff1a;写一份好的简历。一个独特、简单、清晰的个人简历模板可以更好地吸引雇主的注意和兴趣&#xff0c;并帮助你在许多求职者中脱颖而出。如何制作一份令人印象深刻的简历&#xff1f;巧妙地使用个人简历模板是一个不错的选择。在本文中&#xff0c;我…

线性代数:矩阵的初等变换

目录 一、初等行变换 行阶梯 / 行最简 性质 二、矩阵的标准型 三、矩阵的等价 四、初等矩阵 五、重要性质与定理 一、初等行变换 行阶梯 / 行最简 性质 二、矩阵的标准型 三、矩阵的等价 四、初等矩阵 五、重要性质与定理

Java快速输入输出的实现

在Java编程中&#xff0c;我们经常需要从标准输入读取数据&#xff0c;或者将结果输出到标准输出。为了提高输入输出的效率&#xff0c;我们可以使用快速输入输出的方法。下面是一个示例类Read&#xff0c;它提供了一系列方法来实现快速的输入输出操作。 import java.io.*;cla…

Git - 每次 git pull/push 时需要账号和密码解决方案

问题描述 在提交项目代码或者拉取代码的时候&#xff0c;每次 git 都要输入用户名密码&#xff0c;很烦~ 解决方案 让服务器记下来用户名和密码&#xff0c;此时输入一次&#xff0c;以后再 git push /pull 的时候就不用再输账号和密码了 # 配置 git 记录用户名和密码 git c…

租游戏服务器多少钱1个月?一年价格多少?

游戏服务器租用多少钱一年&#xff1f;1个月游戏服务器费用多少&#xff1f;阿里云游戏服务器26元1个月、腾讯云游戏服务器32元&#xff0c;游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选&#xff0c;可以选择轻量应用服务器和云服务器&#xff0c;阿腾云atengyu…

SpringBoot注解--04--01--注解@Mapper在IDEA中自动注入警告的解决方案

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 问题原因 解决方案方法1&#xff1a;为 Autowired 注解设置required false方法2&#xff1a;用 Resource 替换 Autowired方法3&#xff1a;在Mapper接口上加上Repo…

跟着pink老师前端入门教程-day19

一、移动WEB开发之流式布局 1、 移动端基础 1.1 浏览器现状 PC端常见浏览器&#xff1a;360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器、搜狗浏览器、IE浏览器。 移动端常见浏览器&#xff1a;UC浏览器&#xff0c;QQ浏览器&#xff0c;欧朋浏览器&#xff0…

论文阅读-Transformer-based language models for software vulnerability detection

「分享了一批文献给你&#xff0c;请您通过浏览器打开 https://www.ivysci.com/web/share/biblios/D2xqz52xQJ4RKceFXAFaDU/ 您还可以一键导入到 ivySCI 文献管理软件阅读&#xff0c;并在论文中引用 」 本文主旨&#xff1a;本文提出了一个系统的框架来利用基于Transformer的语…

Kubernetes实战(二十五)-快速下载k8s.gcr.io,gcr.io,quay.io镜像

1 背景 在云计算和云原生的环境下&#xff0c;不可避免的会使用很多镜像创建容器&#xff0c;其中有些镜像只有谷歌镜像仓库才有&#xff0c;但是国内不可以直接下载谷歌仓库的镜像&#xff0c;下面推荐几种方法&#xff0c; k8s.gcr.io/gcr.io 是谷歌的镜像仓库&#xff0c;…

LaTeX基本公式语法

Markdown支持通过LaTeX插入复杂的数学公式。 行内公式与块级公式 行内公式&#xff1a;使用一对美元符号$...$标记&#xff1a; 欧拉公式可以表示为 e i π 1 0 e^{i\pi} 1 0 eiπ10&#xff0c;这是一个著名的等式。 块级公式&#xff1a;使用一对双美元符号$$...$$标记…

宠物空气净化器适合养猫家庭吗?除猫毛好的猫用空气净化器推荐

宠物掉毛是一个普遍存在的问题&#xff0c;尤其在脱毛季节&#xff0c;毛发似乎无处不在。这给家中的小孩和老人带来了很多麻烦&#xff0c;他们容易流鼻涕、过敏等不适。此外&#xff0c;宠物有时还会不规矩地拉扯和撒尿&#xff0c;这股气味实在是难以忍受。家人们对宠物的存…

Java——Arrays常用方法

Arrays常用方法 Java 中的 Arrays 类提供了一系列静态方法&#xff0c;可以用来操作数组。 1. sort() 方法——默认升序排序 Arrays.sort() 方法用于对数组进行排序。该方法有多个重载版本&#xff0c;可以对不同类型的数组进行排序。 public static void sort(int[] arr) …

算法学习——LeetCode力扣哈希表篇2

算法学习——LeetCode力扣哈希表篇2 454. 四数相加 II 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 …

Springboot启动出现Waiting for changelog lock...问题

今天在开发的时候&#xff0c;Springboot启动的时候出现Waiting for changelog lock…问题. 问题原因&#xff1a;该问题就是发生了数据库的死锁问题&#xff0c;可能是由于一个杀死的liquibase进程没有释放它对DATABASECHANGELOGLOCK表的锁定&#xff0c;导致服务启动失败&…

我的世界Java版服务器如何搭建并实现与好友远程联机Minecarft教程

文章目录 1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 本教程主要介…

项目中日志采集实践:技术、工具与最佳实践

目录 引言 一. 选择合适的日志框架 二. 配置日志框架 三. 使用适当的日志级别 1、日志级别概述 2、选择适当的日志级别 &#xff08;这里以logbkck为例&#xff09; 3、动态调整日志级别 四、 结合日志上下文信息 1. 使用 SLF4J MDC 2. 使用 Log4j 2 的 ThreadContext…