当前位置: 首页 > news >正文

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

目录

  • 题目
  • 解法一
  • 解法二
  • 如何比较字符串
  • letters.back()
  • *upper_bound为什么要加*

题目

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

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

解法一

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

解法二

class Solution {
public:char nextGreatestLetter(vector<char> &letters, char target) {return target < letters.back() ? *upper_bound(letters.begin(), letters.end() - 1, target) : letters[0];}
};

如何比较字符串

直接大于小于号就可以

letters.back()

letters.back() 是 C++ 中 std::vector 的成员函数,用于返回容器中最后一个元素的引用。back() 函数没有参数,它直接返回最后一个元素,不会对容器进行修改。

upper_bound为什么要加

*upper_bound 是为了获取 upper_bound 函数返回的迭代器指向的元素的值。upper_bound 函数返回的是一个迭代器,指向第一个大于给定值的元素。

在这段代码中,* 是用于解引用迭代器的操作符。通过解引用操作符 *,我们可以获取迭代器指向的元素的值。

所以,*upper_bound(letters.begin(), letters.end() - 1, target) 表示获取 upper_bound 函数返回的迭代器指向的元素的值,即大于 target 的最小元素。

在这个特定的代码片段中,return 语句将返回大于 target 的最小元素作为函数的返回值。
用于获取解析的元素值返回

相关文章:

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

目录 题目解法一解法二如何比较字符串letters.back()*upper_bound为什么要加* 题目 给你一个字符数组 letters&#xff0c;该数组按非递减顺序排序&#xff0c;以及一个字符 target。letters 里至少有两个不同的字符。 返回 letters 中大于 target 的最小的字符。如果不存在这…...

浅谈QT中Tab键的切换逻辑

浅谈QT中Tab键的切换逻辑 无意中发现在输入界面中按下Tab键时&#xff0c;没有按照预想的顺序切换焦点事件&#xff0c;如下图所示 这个现象还是很有趣&#xff0c;仔细观察了下&#xff0c;默认的切换顺序是按照控件拖入顺序&#xff0c;那么知道了这个问题想要解决起来就很简…...

基于MoviNet检测视频中危险暴力行为

项目源码获取方式见文章末尾&#xff01; 600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【Faster & Mask R-CNN模型实现啤酒瓶瑕疵检测】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生…...

《等保测评:抵御网络威胁的盾牌》

在网络空间的无垠战场上&#xff0c;网络安全威胁如同暗夜之狼&#xff0c;潜伏在每一个角落&#xff0c;随时准备对企业和个人发动致命一击。在这场没有硝烟的战争中&#xff0c;等保测评作为国家网络安全等级保护制度的重要组成部分&#xff0c;犹如坚固的盾牌&#xff0c;为…...

前端必知必会-JavaScript 对象属性

文章目录 JavaScript 对象属性访问 JavaScript 属性添加新属性删除属性嵌套对象 总结 JavaScript 对象属性 对象是无序的属性集合 属性是 JavaScript 对象中最重要的部分。 属性可以更改、添加、删除&#xff0c;有些属性是只读的。 访问 JavaScript 属性 访问对象属性的语…...

双11都有什么值得入手的好物?双十一最建议买的5样东西

双11的脚步逐步渐近&#xff0c;我们点开各大电商平台也可以看到&#xff0c;各个商家已经开始大激烈的促销大战&#xff0c;那么双十一作为一年之中最盛大的购物节&#xff0c;都有什么值得入手的好物呢&#xff1f;今天就给大家建议买的5样东西&#xff0c;从家电好物到生活用…...

Xcode 15.4 运行flutter项目,看不到报错信息详情?

Xcode升级后&#xff0c;遇到了奇怪的事情&#xff1a; 运行flutter项目&#xff0c;左侧栏显示有报错信息&#xff0c;但是点击并没有跳转出具体的error详情。【之前都会自己跳转出来的&#xff0c;升级后真的是无厘头】 方案&#xff1a; 点击左侧导航栏最右边的图标——>…...

AMD开始为基于RDNA的GPU开发自己的神经超采样和去噪技术

NVIDIA 的升级技术已经取得了长足的进步&#xff0c;这些技术解决了现代游戏在开启光线追踪时在苛刻场景中的性能问题。NVIDIA 开始实施各种光线追踪和升级技术后&#xff0c;AMD 和英特尔也紧随其后&#xff0c;推出了自己的 FSR 和 XeSS 升级方法。据报道&#xff0c;AMD 将跟…...

Python中的文件I/O操作

在Python编程中&#xff0c;文件I/O&#xff08;输入/输出&#xff09;是一个重要的主题&#xff0c;涉及如何读取和写入文件。无论是处理文本文件还是二进制文件&#xff0c;Python提供了简洁易用的接口。本文将介绍如何在Python中进行文件I/O操作&#xff0c;包括读取、写入和…...

.net framework 3.5sp1开启错误进度条不动如何解决

浏览器地址栏输入www.dnz9.com远程解决netframework问题 在Windows操作系统上安装或启用.NET Framework 3.5 SP1时&#xff0c;如果遇到进度条不动的问题&#xff0c;可能由多种原因引起。以下是一些可能的解决方案&#xff1a; 1. 使用Windows功能对话框 1.打开“控制面板”。…...

什么影响网站的SEO排名

1.多IP多C段配置&#xff1a;海外站群服务器通常提供多IP多C段配置&#xff0c;这使得网站可以拥有多个独立的IP地址&#xff0c;有效避免同一IP下多个网站之间的关联性问题&#xff0c;降低被搜索引擎认为是站群作弊的风险。通过将不同的内容部署在不同的IP地址和C段上&#x…...

css绘制s型(grid)

在之前有通过flex布局实现了s型布局&#xff0c;是通过截取数组形式循环加载数据 这次使用grid直接加载数据通过css实现 <div id"app"><template v-for"(item,inx) in items"><div class"row"><template v-for"(ite…...

【华为HCIP实战课程二十八】中间到中间系统协议IS-IS邻居关系排错,网络工程师

一、ISIS邻居关系条件 1、同一层次(比如Level-2路由器不能和Level-1路由器形成邻居关系) 2、同一区域(L1必须同一区域) 3、同一网段 R1和R2之间分别配置如下IP地址和掩码: R1 的接口S1/0/0掩码为/24 R2的接口S1/0/0配置成掩码/28: 此时R1和R2依然可以建立ISIS邻居关系…...

Word首行空格不显示空格符号问题

Word段落首行空格设置指南 问题描述 在Word中编辑文档时&#xff0c;有时会遇到段落首行敲击空格键却不显示空格的问题。这通常与Word的自动更正设置有关。 解决方法 要解决此问题&#xff0c;需要调整Word的自动更正设置。具体步骤如下&#xff1a; 打开Word的"自动更…...

vue+element上传图片

一、html页面上传图片 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…...

用ChatGPT提升工作效率:从理论到实际应用

伴人工智能技术的迅速演进&#xff0c;像ChatGPT这类语言模型已成为提升工作效率的关键工具。这类模型不仅具备处理海量数据的能力&#xff0c;还能自动化许多日常任务&#xff0c;从而提高决策的准确性。本文将深入探讨如何在工作中利用ChatGPT等AI工具提升效率&#xff0c;涵…...

8、Node.js Express框架

五、Express框架 5.1概念 Express框架是一个基于Node.js平台的极简、灵活的WEB开发框架:www.express.com.cn 简单来说,Express是一个封装好的工具包,封装了很多功能,便于我们开发WEB应用 5.2安装 npm i express5.3 Express初体验 //01-express初体验.js //1.导入exrp…...

STM32F103C8T6学习笔记3--按键控制LED灯

1、实验内容 S4、S5分别接PB12和PB13&#xff0c;实验要求&#xff0c;按下S4&#xff0c;D1亮&#xff0c;D2灭&#xff1b;按下S5&#xff0c;D2亮&#xff0c;D1灭。 由于按键学习的是GPIO口的输入功能&#xff0c;和输出功能的配置略有区别。本次通过按键触发相应功能没有…...

Unity3D Shader实现法线贴图功能详解

在Unity3D中&#xff0c;Shader是一种强大的工具&#xff0c;可以帮助开发人员实现各种复杂的视觉效果&#xff0c;其中法线贴图功能就是其中之一。法线贴图是一种纹理映射技术&#xff0c;通过在模型表面上放置法线贴图纹理来模拟真实世界中的细节和凹凸&#xff0c;使模型看起…...

【含开题报告+文档+源码】基于SpringBoot+Vue的校园设备报修系统

开题报告 随着高校规模的不断扩大和设施设备的日益完善&#xff0c;传统的校园设备报修方式已经无法满足日益增长的维修需求。这种方式往往存在信息不准确、报修流程冗长、反馈不及时等问题&#xff0c;给高校维修工作带来了很大的困扰。为了提高设备故障处理的效率和准确性&a…...

CANNBot Triton-Ascend Amin归约原子操作优化案例

【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体&#xff0c;本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills name: triton-ascend-case-reduction-amin-atomic description: "…...

告别繁琐点击:3大功能助你实现智能文档获取与自动化下载

告别繁琐点击&#xff1a;3大功能助你实现智能文档获取与自动化下载 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为了…...

如何快速上手Meeko:分子对接参数化的完整指南

如何快速上手Meeko&#xff1a;分子对接参数化的完整指南 【免费下载链接】Meeko Interface for AutoDock, molecule parameterization 项目地址: https://gitcode.com/gh_mirrors/me/Meeko 想要在药物发现和分子相互作用研究中获得精准的对接结果吗&#xff1f;Meeko作…...

告别手动撮合!这款插件让量化回测全程智能省心

当你的策略信号发出买入指令&#xff0c;资金是否足够&#xff1f;保证金怎么算&#xff1f;扣完手续费和印花税&#xff0c;账户还剩多少&#xff1f; 这些“交易后处理”逻辑&#xff0c;听起来不难&#xff0c;亲手写过就知道有多绕。不同券商的计费规则各异&#xff0c;昨仓…...

为什么你的“丝绸”总像锡纸?Midjourney材质语义断层诊断:87%用户忽略的材质动词前置语法(drape, crumple, refract)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;材质语义断层的本质&#xff1a;从物理光学到提示词编码的跨模态失配 材质在真实世界中由微观结构、折射率、表面粗糙度、各向异性散射等物理属性共同定义&#xff0c;其视觉表现依赖于光与物质的连续相…...

避坑指南:全志T113-S3连接EC200A模块,搞定RNDIS驱动与自动拨号的那些坑

全志T113-S3与EC200A模块深度调优&#xff1a;从RNDIS驱动到稳定联网的完整实战 在物联网设备开发中&#xff0c;4G模块的集成往往是项目成败的关键节点之一。全志T113-S3作为一款高性能嵌入式处理器&#xff0c;与移远EC200A 4G模块的组合在工业控制、智能终端等领域应用广泛。…...

N_m3u8DL-RE终极指南:如何高效下载加密流媒体视频

N_m3u8DL-RE终极指南&#xff1a;如何高效下载加密流媒体视频 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE 还…...

Linux系统维护:高效查找与清理失效符号链接的两种核心方法

1. 项目概述&#xff1a;为什么我们需要清理“幽灵”链接 在Linux系统里摸爬滚打久了&#xff0c;你肯定遇到过这种情况&#xff1a;运行一个脚本或者启动一个服务时&#xff0c;突然报错“No such file or directory”&#xff0c;但你明明记得这个文件是存在的。一查才发现&a…...

AI赋能能耗管理:解锁智能照明低碳运维新范式

摘要在双碳战略全面落地、智慧楼宇数字化转型的浪潮下&#xff0c;智能照明已广泛应用于商业园区、市政道路、写字楼等各类场景。传统照明能耗管理模式粗放&#xff0c;存在能耗数据模糊、浪费隐蔽、管控滞后、节能无依据等痛点&#xff0c;大量无效耗电持续增加运营成本。新一…...

抖音批量下载器终极指南:免费高效的视频采集解决方案

抖音批量下载器终极指南&#xff1a;免费高效的视频采集解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...