leetcode 二分查找·系统掌握 寻找比目标字母大的最小字母

题目:

给你一个字符数组 letters,该数组按非递减顺序排序,以及一个字符 targetletters 里至少有两个不同的字符。

返回 letters 中大于 target 的最小的字符。如果不存在这样的字符,则返回 letters 的第一个字符。

题解:
本题就是非常经典的泛型二分~01~查找模型,但是需要注意,这样查找出来的可能是预期答案,第一个1,也可能是最后一个0(当查找范围全是0时),所以需要对结果特判一下。

char nextGreatestLetter(vector<char>& letters, char target) {int l=0,r=letters.size()-1;while(l<r){int mid=(l+r)>>1;if(letters[mid]>target)r=mid;else l=mid+1;}if(letters[l]>target)return letters[l];else return letters[0];}

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

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

相关文章

C++及cmake语法介绍

c/cmake学习 文章目录 c/cmake学习1. c1.1 基本模型1.1.1 for循环1.1.2 main函数1.1.2 带参数函数编译函数 2. CMAKE2.1 相关命令2.1.1 编译基本命令2.1.2 动态库静态库编译2.1.3 消息输出2.1.4 cmake变量常见参数1. 设置构建类型2. 设置编译器标志3. 指定编译器4. 设置安装路径…

机器学习_PCA

目录 一、概念 二、原理 三、步骤 四、实战 1、数据处理——转rgb为灰度图像 2、手动实现pca降维 3、查看信息保留数量 4、调用第三方库实现pca降维 五、小结 引入&#xff1a; 当说黄河五路和渤海三路交叉口的时候&#xff0c;这些路就类似于我们说的坐标系。而城市中的…

高等数学笔记(三):导数

一、导数概念 1.1 导数的定义 1.1.1 函数在一点处的导数与导函数 1.1.2 单侧导数 1.2 导数的几何意义 1.3 函数可导性与连续性的关系 二、函数的求导法则 2.1 函数的和、差、积、商的求导法则 2.2 反函数的求导法则 2.3 复合函数的求导法则 2.4 基本求导法则与导数公式 三…

read code and make summer (python)

read code and make summer ==标题==:语法==标题==:类的定义==标题==:继承==标题==:多态==标题==:__all__ = [create_dataset, create_dataloader]==标题==:yield==标题==: f-string(格式化字符串)==标题==:getattr()==标题==:logging==标题==:seed==标题==:slice…

必看!!! 2024 最新 PG 硬核干货大盘点(上)

PGConf.dev&#xff08;原名PGCon&#xff0c;从2007年至2023年&#xff09;首次在风景如画的加拿大温哥华市举办。此次重新定位的会议带来了全新的视角和多项新的内容&#xff0c;参会体验再次升级。尽管 PGCon 历来更侧重于开发者&#xff0c;吸引来自世界各地的资深开发者、…

Nginx常用配置、反向代理

目录 1. 常用配置 基本设置 HTTP配置 虚拟主机配置 2. 高级配置 反向代理配置 SSL/TLS配置 负载均衡配置 1. 常用配置 基本设置 user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid;user nginx;: 指定Nginx worker…

深入理解并打败C语言难关之一————指针(5)(最终篇)

前言&#xff1a; 仔细一想&#xff0c;小编已经把指针的大部分内容都说了一遍了&#xff0c;小编目前有点灵感枯竭了&#xff0c;今天决定就结束指针这一大山&#xff0c;可能很多小编并没有提到过&#xff0c;如果有些没说的小编会在后续博客进行补充道&#xff0c;不多废话了…

服务器数据恢复—NTFS文件系统下双循环riad5数据恢复案例

服务器存储数据恢复环境&#xff1a; EMC CX4-480存储&#xff0c;该存储中有10块硬盘&#xff0c;其中有3块磁盘为掉线磁盘&#xff0c;另外7块磁盘组成一组RAID5磁盘阵列。运维人员在处理掉线磁盘时只添加新的硬盘做rebuild&#xff0c;并没有将掉线的硬盘拔掉&#xff0c;所…

ARCGIS 如何对河流等线条图形进行Smooth处理——具有多个断点高阶版

1.线转点折点&#xff08;注意&#xff01;很重要&#xff0c;不是线转点&#xff09; 2.点转线步骤 ## 3 线的融合 2.1 新建Filed 》短精度类型》利用选择工具的 线文件。全选同一条河流点&#xff0c;进入Tabel的选择界面。给同一条河赋值同一个值。 大功告成&#xff01;…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《计及多类型储能调频容量动态申报的电能量与调频市场联合出清方法研究》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

深入探究RTOS的任务调度

阅读引言&#xff1a; 此文将会从一个工程文件&#xff0c; 一步一步的分析RTOS的任务调度实现&#xff0c; 这里选用FreeRTOS分析&#xff0c; 别的也差不多的&#xff0c; 可能在细节上有少许不一样。 目录 1&#xff0c; 常见嵌入式实时操作系统 2&#xff0c; 任务调度的…

HDFS 面试题(一)

1. 简述什么是HDFS&#xff0c;以及HDFS作用 &#xff1f; HDFS&#xff0c;全称为Hadoop Distributed File System&#xff0c;即Hadoop分布式文件系统&#xff0c;是一个分布式文件系统&#xff0c;由Apache Hadoop项目的一部分。它被设计用来在廉价的硬件上运行&#xff0c…

练习题-18 计算两个积分

计算积分 I ∫ R e − t 4 d t . I\int_{\mathbb{R}} e^{-t^4} dt. I∫R​e−t4dt. 解&#xff1a;令 x t 4 xt^4 xt4. 则 I 2 ∫ 0 ∞ e − x ⋅ 1 4 ⋅ x − 3 / 4 d x 1 2 Γ ( 1 4 ) I 2\int_0^\infty e^{-x} \cdot \frac{1}{4}\cdot x^{-3/4} dx\frac{1}{2} \Gamma(…

SQLite Delete 语句

SQLite Delete 语句 SQLite 的 DELETE 语句用于从表中删除数据。它是 SQL 数据库管理中非常基础且重要的操作之一。在使用 DELETE 语句时&#xff0c;可以删除表中的特定行&#xff0c;也可以删除整个表的数据。本文将详细介绍 SQLite 中的 DELETE 语句&#xff0c;包括其语法…

【机器学习】第11章 神经网络与深度学习(重中之重)

一、概念 1.神经元模型 &#xff08;1&#xff09;神经网络的基本组成单位 &#xff08;2&#xff09;生物上&#xff0c;每个神经元通过树突接受来自其他被激活神经元的信息&#xff0c;通过轴突释放出来的化学递质改变当前神经元内的电位。当神经元内的电位累计到一个水平时…

Linux虚拟化技术概览:从KVM到Docker

Linux虚拟化技术是现代数据中心和云基础设施的核心组成部分&#xff0c;它允许在同一台物理服务器上运行多个独立的操作系统实例&#xff0c;从而提高资源利用率、灵活性和安全性。从KVM到Docker&#xff0c;Linux虚拟化经历了从传统虚拟机到轻量级容器的演进&#xff0c;下面是…

时间戳转时间格式小记——个位数月份 如何去掉补位0的情况

工作中遇到的问题小记一下 时间戳&#xff1a;1710172800 时间格式&#xff1a;2024-03-12 00:00:00 在无要求的情况下这种情况很OK 当我们需要时间格式为&#xff1a;2024-3-12 00:00:00 那常规情况就不适用 解决&#xff1a; import time sjc 1710172800 # Windows 环境…

Kubernetes Dashboard

Dashboard Dashboard 的项目网站&#xff0c;可以查看说明文档和基本的使用情况。 下载yaml wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.0/aio/deploy/recommended.yaml注意需要修改镜像&#xff0c;不然可能会拉去不下来镜像 cat recommended.yaml…

人工智能--自然语言处理NLP概述

欢迎来到 Papicatch的博客 目录 &#x1f349;引言 &#x1f348;基本概念 &#x1f348;核心技术 &#x1f348;常用模型和方法 &#x1f348;应用领域 &#x1f348;挑战和未来发展 &#x1f349;案例分析 &#x1f348;机器翻译中的BERT模型 &#x1f348;情感分析在…

【C++】编程核心概念——核心特征

C编程核心概念 在C中&#xff0c;封装、继承和多态是面向对象编程的三大核心概念&#xff08;特征&#xff09;。这些特性为程序员提供了一种创建和管理复杂系统的方法&#xff0c;同时保持了代码的模块化、可重用性和可扩展性。下面分别解释这三个概念的作用&#xff1a; 封装…