【LeetCode】503. 下一个更大元素 II
503. 下一个更大元素 II(中等)



方法:单调栈
- 「 对于找最近一个比当前值大/小」的问题,都可以使用单调栈来解决。
- 栈可以很好的保存原始位置,最近影射栈顶。题目要求更大,因此更大即解–出栈,更小则入栈。
- 「 栈内存放的永远是还没更新答案的下标。⌟
思路
-
首先,创建一个大小为n的答案数组ans,初始化为-1。
-
然后,使用一个栈s来存储数组中的索引。 从数组的第一个元素开始遍历,将第一个元素的索引压入栈中。
-
接着遍历数组的剩余元素。对于每个元素,我们将栈顶元素与当前元素进行比较。 如果栈顶元素小于当前元素,则说明栈顶元素的下一个更大元素就是当前元素。 我们将栈顶元素的下一个更大元素设置为当前元素,并将栈顶元素出栈。 重复这个过程,直到栈为空或者栈顶元素不小于当前元素。
-
最后,将当前元素的索引压入栈中,以便在后面的元素中找到它的下一个更大元素。 当遍历完整个数组后,我们就得到了所有元素的下一个更大元素。
-
两次遍历:由于目标要么在当前元素之前,要么在之后,因此两次遍历一定能覆盖到。
代码
class Solution {
public:vector<int> nextGreaterElements(vector<int>& nums) {int n = nums.size();vector<int> ans(n, -1);// vector<int> flag(n, 0);stack<int> s;s.push(0);for(int i=1;i <= 2*n-2;++i){while(!s.empty() && (nums[s.top()] < nums[i%n])){ans[s.top()] = nums[i%n];s.pop();}s.push(i%n);}return ans;}
};
相关文章:
【LeetCode】503. 下一个更大元素 II
503. 下一个更大元素 II(中等) 方法:单调栈 「 对于找最近一个比当前值大/小」的问题,都可以使用单调栈来解决。栈可以很好的保存原始位置,最近影射栈顶。题目要求更大,因此更大即解–出栈,更小…...
使用infura创建以太坊网络
创建账号 https://www.infura.io/zh 进入控制台Dashboard,选择CREATE API KEY 创建成功后,进入API KEY查看,使用PostMan测试 返回result即为当前区块。...
TCP/IP协议是什么?
78. TCP/IP协议是什么? TCP/IP协议是一组用于互联网通信的网络协议,它定义了数据在网络中的传输方式和规则。作为前端工程师,了解TCP/IP协议对于理解网络通信原理和调试网络问题非常重要。本篇文章将介绍TCP/IP协议的概念、主要组成部分和工…...
python图像处理实战(三)—图像几何变换
🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?typeblog 🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初…...
学习vue2笔记
学习vue2笔记 文章目录 学习vue2笔记脚手架文件结构关于不同版本的Vuevue.config.js配置文件ref属性props配置项mixin(混入)插件scoped样式总结TodoList案例webStorage组件的自定义事件全局事件总线(GlobalEventBus)消息订阅与发布(pubsub&am…...
【SQL】查找多个表中相同的字段
--查找字段所在 SELECTbb.TABLE_NAME,bb.COLUMN_NAME ,aa.COLUMN_ID,aa.DATA_TYPE,aa.DATA_LENGTH ,bb.COMMENTS FROMuser_tab_cols aa JOIN user_col_comments bb ONaa.TABLE_NAME bb.TABLE_NAMEAND aa.COLUMN_NAME bb.COLUMN_NAME JOIN dba_objects cc ONbb.TABLE_NAME cc…...
“未来之光:揭秘创新科技下的挂灯魅力“
写在前面: 高度信息化当下时代,对电脑及数字设备的需求与日俱增无处不在,随之而来的视觉疲劳和眼睛问题也攀升到了前所未有的高度。传统台灯对于长时间使用电脑的人群来说是完全无法解决这些问题的。一款ScreenBar Halo 屏幕挂灯,…...
Spring boot MongoDB实现自增序列
在某些特定的业务场景下,会需要使用自增的序列来维护数据,目前项目中因为使用MongoDB,顾记录一下如何使用MongoDB实现自增序列。 MongoDB自增序列原理 MongoDB本身不具有自增序列的功能,但是MongoDB的$inc操作是具有原子性的&…...
MyBatis查询数据库【秘籍宝典】
0.MyBatis执行流程1.第一个MyBatis查询1.创建数据库和表1.2.添加MyBatis框架依赖【新项目】1.3.添加MyBatis框架依赖【旧项目】1.4.配置连接数据库1.5.配置MyBatis的XML路径2.MyBatis模式开发2.1 添加MyBatis的xml配置 3.增查改删(CRUD)5.1.增加操作5.2.…...
目标检测舰船数据集整合
PS:大家如果有想要的数据集可以私信我,如果我下载了的话,可以发给你们~ 一、光学数据集 1、 DIOR 数据集(已下载yolo版本)(论文中提到过) DIOR由23463张最优遥感图像和190288个目标实例组成,这些目标实例用…...
第一章 Android 基础--开发环境搭建
文章目录 1.Android 发展历程2.Android 开发机器配置要求3.Android Studio与SDK下载安装4.创建工程与创建模拟器5.观察App运行日志6.环境安装可能会遇到的问题7.练习题 本专栏主要在B站学习视频: B站Android视频链接 本视频范围:P1—P8 1.Android 发展历…...
【LeetCode周赛】2022上半年题目精选集——二分
文章目录 2141. 同时运行 N 台电脑的最长时间解法1——二分答案补充:求一个int数组的和,但数组和会超int 解法2——贪心解法 2251. 花期内花的数目解法1——二分答案代码1——朴素二分写法代码2——精简二分⭐ 解法2——差分⭐⭐⭐ 2258. 逃离火灾解法1—…...
vuejs如何将线上PDF转为base64编码
只需要两个方法-下载与转换: 下载方法: demoDownloadPDF(url) {// if (!(/^https?:/i.test(url))) return;if (window.XMLHttpRequest) var xhr new XMLHttpRequest(); else var xhr new ActiveXObject("MSXML2.XMLHTTP");xhr.open(GET, u…...
Repo工作原理及常用命令总结——2023.07
文章目录 1. 概要2. 工作原理2.1 项目清单库(.repo/manifests)2.2 repo脚本库(.repo/repo)2.3 仓库目录和工作目录2.4 repo 目录结构分析 3. 使用介绍3.1 init3.2 sync3.3 upload3.4 download3.5 forall3.6 prune3.7 start3.8 status 4. 使用实践4.1 对项目清单文件进行定制4.2…...
Python教程(2)——开发python常用的IDE
为什么需要IDE 在理解IDE之前,我们先做以下的实验,新建一个文件,输入以下代码 total_sum 0 for x in range(1,101):total_sum x print(total_sum)非常非常简单的一个程序,主要就是计算1加到100的值,我们将它重命名…...
【lambda函数】lambda()函数
lambda() lambda()语法捕捉列表mutable lambda 底层原理函数对象与lambda表达式 lambda()语法 lambda表达式书写格式: [capture-list] (parameters) mutable -> return-type{ statement }咱…...
ThreeJs CSS3DObject 点击失效问题
想实现一个在选中物体,弹出菜单,结果发现,点击会失效 <ul id"menu" class"list-group list-group-full"><li class"list-group-item" onclick"test()">24小时曲线</li><li cla…...
飞书深诺、恒生面试(部分)(未完全解析)
飞书深诺 说一下你对SaaS项目的理解?数据隔离是怎么处理的?Answer: 我们采用的是SAAS服务多租户数据隔离架构中的1.3共享数据库,通过租户ID来隔离,成本最低,隔离级别最低。Q:有没有开发隔离的中间件&#x…...
Spring Cloud Config: 了解、原理和使用
Spring Cloud Config: 了解、原理和使用 Spring Cloud Config 是 Spring Cloud 生态系统中的一个重要组件,它提供了一种分布式配置管理的解决方案,能够集中管理应用程序的配置,支持多种后端存储,如 Git、SVN、本地文件系统、Vaul…...
基于图的路径规划算法对比
基于图的路径规划算法对比 算法说明与实现效果构造路网1.打开Arcmap2.新建Shapefile文件3.编辑Shapefile属性4.开始编辑5.创建要素并绘制路网6.打断相交线7.保存编辑8.打开图层属性表9.添加字段10.完成字段添加11.计算字段id12.计算点线字段13.选中length字段14.计算length字段…...
SPIRAN ART SUMMONER异常处理:常见错误解决方案
SPIRAN ART SUMMONER异常处理:常见错误解决方案 1. 前言 遇到SPIRAN ART SUMMONER运行报错时,别急着放弃。作为一款强大的AI艺术生成工具,它在使用过程中确实会遇到一些典型问题,但大多数都有明确的解决方法。本文汇总了用户反馈…...
告别UnsatisfiedLinkError!OpenCV Java版环境配置的终极避坑指南(含Maven/Gradle依赖)
告别UnsatisfiedLinkError!OpenCV Java版环境配置的终极避坑指南(含Maven/Gradle依赖) 在计算机视觉领域,OpenCV无疑是开发者最常用的工具库之一。然而,当Java开发者满怀期待地引入OpenCV依赖后,却常常被U…...
STM32CubeMX实战指南:从零搭建HAL库项目与LED控制
1. STM32CubeMX与HAL库开发入门 第一次接触STM32开发的朋友可能会被各种专业术语吓到——寄存器、固件库、HAL库、时钟树配置... 作为一个从51单片机转战STM32的"过来人",我完全理解这种困惑。三年前我刚开始用STM32F103时,光是搭建开发环境就…...
Halcon实战:5个距离计算算子怎么选?从点到区域,手把手教你避坑
Halcon距离计算算子实战指南:从原理到避坑策略 在工业视觉项目中,精确测量各类几何元素之间的距离是常见需求。Halcon作为业界领先的机器视觉库,提供了distance_pp、distance_pr、distance_lr等系列距离计算算子。但很多工程师在实际应用中常…...
数据库工具集成与自动化:awesome-db-tools 中的工作流优化终极指南
数据库工具集成与自动化:awesome-db-tools 中的工作流优化终极指南 【免费下载链接】awesome-db-tools Everything that makes working with databases easier 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-db-tools awesome-db-tools 是一个社区驱…...
AI大模型进化地图:小白也能看懂的技术架构与未来趋势(收藏版)
本文深入剖析AI模型的技术架构、能力瓶颈及商业压力,揭示未来AI模型的四类形态:通用基础大模型、深度推理模型、边缘轻量模型和垂直领域专业模型。文章通过DeepSeek-R1和Google Gemini的案例,量化分析不同模型类型的业务逻辑差异,…...
嵌入式串口通信中的结构体与浮点数转换技巧
1. 串口数据传输中的结构体转换问题在嵌入式系统开发中,串口通信是最基础也最常用的数据传输方式之一。作为一名长期从事嵌入式开发的工程师,我经常遇到需要传输复杂数据类型的情况。串口本身只能以字节为单位传输数据,这就带来了一个关键问题…...
太吾绘卷Mod终极指南:从零开始打造个性化游戏体验
太吾绘卷Mod终极指南:从零开始打造个性化游戏体验 【免费下载链接】Taiwu_mods 太吾绘卷游戏Mod 项目地址: https://gitcode.com/gh_mirrors/ta/Taiwu_mods 想要为《太吾绘卷》注入全新活力吗?太吾绘卷Mod为这款经典游戏带来了无限可能࿰…...
不止于JWT:用FastAPI的Depends实现细粒度权限控制
📌 本文摘要 很多FastAPI初学者把JWT认证当成权限控制的终点,结果上线后频繁出现越权操作。本文通过一个真实的“多租户Todo”案例,带你从0搭建基于角色的访问控制(RBAC)和数据级权限(ABAC)&…...
从一道蓝桥杯EDA赛题,聊聊平衡车硬件设计中那些‘不起眼’却关键的安全电路
平衡车硬件设计中的安全电路:从蓝桥杯赛题到工程实战 去年调试一款平衡车原型机时,我曾遇到一个诡异现象:每次电池快耗尽时,电机就会突然失控。经过三天排查,最终发现问题出在电源检测电路的分压电阻取值上——这个看似…...
