力扣503

题目

给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。

数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1 。

示例 1:

输入: nums = [1,2,1]
输出: [2,-1,2]
解释: 第一个 1 的下一个更大的数是 2;
数字 2 找不到下一个更大的数; 
第二个 1 的下一个最大的数需要循环搜索,结果也是 2。

示例 2:

输入: nums = [1,2,3,4,3]
输出: [2,3,4,-1,4]

思路

1 可以用暴力方法对数组进行遍历,记录下最大值,找到就break,如果等于最大值就赋为-1,利用取余实现循环

2 用一个单向栈来保存下标,遍历每个数据,判断栈是否为空并且栈顶元素是否小于现在的值,如果是,那现在这个值就是栈里所以小于他的第一个 最大值,这里不需要再做额外的判断,因为从栈顶开始一直到为空或栈底值不小于当前值 。栈里一定是从底到顶递减,否则早出栈了。

循环遍历的话,用取余解决。

代码

class Solution {public int[] nextGreaterElements(int[] nums) {int[] ans=new int[nums.length];int max=nums[0];for(int i=0;i<nums.length;i++){max=Math.max(max,nums[i]);}for(int i=0;i<nums.length;i++){int j=(i+1)%nums.length;while(true){if(nums[j]>nums[i]){ans[i]=nums[j];break;}if(nums[i]==max){ans[i]=-1;break;}j=(j+1)%nums.length;}}return ans;}
}
class Solution {public int[] nextGreaterElements(int[] nums) {int n=nums.length;int[] ans=new int[n]; Arrays.fill(ans, -1);Deque<Integer> st=new ArrayDeque<>();for(int i=0;i<n*2;i++){while(!st.isEmpty()&&nums[i%n]>nums[st.peek()]){ans[st.pop()]=nums[i%n];}if(i<n){st.push(i);}}return ans;}
}

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

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

相关文章

vue-主题切换

themeName/index.vue页面: <template><div class"theme-view"><div click"themeClick" class"theme-btn">切换颜色</div><br>{{themeName white ? 白色 : 深色}}主题页面</div> </template><sc…

Spring Boot中最佳实践:数据源配置详解

Spring Boot中最佳实践&#xff1a;数据源配置详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨在Spring Boot中如何进行最佳实践的数据源…

po文件并转换成mo文件

po文件转换成mo文件 简介 .po和.mo文件是WordPress中语言相关的两种文件。po 是Portable Object(可移植对象)的缩写&#xff0c;存放待翻译的字符串信息&#xff0c;可直接用文本编辑器打开编辑&#xff1b;mo 是Machine Object的缩写&#xff0c;二进制文件&#xff0c;程序…

PHP框架中的模型:核心组件解析

引言 PHP框架作为现代Web开发的强大工具&#xff0c;极大地提高了开发效率和应用质量。在众多PHP框架中&#xff0c;模型&#xff08;Model&#xff09;扮演着至关重要的角色。本文将深入探讨模型在PHP框架中的作用、重要性以及它如何与其他组件协同工作。 什么是模型&#x…

1.3.1 离散周期信号DFS

目录 离散周期序列的DFS表示 离散周期信号DFS的性质 线性特性 位移特性 对称特性 奇偶对称 共轭反转对称 实序列的对称特性 周期卷积 DFS——Discrete Fourier Series 傅里叶级数 离散周期序列的DFS表示 做题得到的小公式 离散周期信号DFS的性质 线性特性 位…

Android-悬浮窗口

在Android系统中&#xff0c;如果应用需要弹出一个悬浮窗口&#xff0c;就需要申请一项特殊权限 <uses-permission android:name"android.permission.SYSTEM_ALERT_WINDOW"/>在Android O之前的系统中申请了该权限后&#xff0c;再给对应的window设置 WindowM…

郭子威:未来香港楼市多方拉动稳健前行

今年2月&#xff0c;香港取消了实行14年的楼市“辣招”。“撤辣”之后&#xff0c;香港楼市迎来迅速反弹&#xff0c;3月一手房成交量环比涨逾10倍。 香港“撤辣”的背景是什么&#xff1f;撤辣之后对楼市的长远影响有哪些&#xff1f;未来香港楼市的表现将会如何&#xff1f; …

马蹄集 oj赛(双周赛第二十九次)

目录 供水管线 附庸的附庸 逆序 队列安排 管理通讯簿 调整队伍 泡泡 一元多项式的加法 约瑟夫环 暧昧团 快排变形 采蜜 供水管线 难度:钻石● 时间限制:1秒巴: 占用内存:128 M 在几个城市之间原本要规划修建许多条下水管道&#xff0c;管理人员发现这些管道会形成一…

KubeCon 香港:移动云与云猿生联合议题《在没有专用 Operator 的情况下管理数据库集群》

KubeCon CloudNativeCon 开源峰会 AI_dev 中国大会将于 2024 年 8 月 21 日至 23 日在香港举行。来自全球的云原生技术专家与爱好者在这里相会&#xff0c;探讨云原生领域的技术创新与最佳实践。此外&#xff0c;本次 KubeCon CloudNativeCon 和开源峰会将与 AI_dev&#x…

前端特殊字符数据,后端接收产生错乱,前后端都需要处理

前端&#xff1a; const data {createTime: "2024-06-11 09:58:59",id: "1800346960914579456",merchantId: "1793930010750218240",mode: "DEPOSIT",channelCode: "if(amount > 50){iugu2pay;} else if(amount < 10){iu…

【日常记录】【JS】SSE 流式传输 ChatGPT 的网络传输模式

文章目录 1、SSE 流式传输2、后端代码3、前端代码5、SSE和WS 对比6、chatgpt SSE的服务端返回的数据参考链接 单工通信是一种单向的通信方式&#xff0c;其中信息只能从发送端传输到接收端&#xff0c;而接收端不能向发送端发送任何信息。在Web开发中&#xff0c;Server-Sent E…

Unity把日志打印到屏幕上

在Unity中&#xff0c;如果你想要在屏幕上直接显示日志信息&#xff0c;而不仅仅是在控制台输出&#xff0c;你可以使用Unity的GUI系统来实现。下面是一个简单的示例&#xff0c;展示如何在Unity游戏中实时显示日志信息。 1、创建一个新的C#脚本&#xff1a; 在Unity编辑器中…

Elasticsearch 分析查询性能

一、引言 Elasticsearch作为一个分布式、多节点的搜索引擎和分析工具&#xff0c;提供了实时、可扩展、高性能的搜索和分析功能。然而&#xff0c;随着数据量的不断增长和查询复杂性的增加&#xff0c;如何分析和优化Elasticsearch的查询性能成为了一个重要的问题。本文将介绍…

计算机等级考试-Java考试大纲

二级Java语言程序设计考试大纲 【基本要求】 &#xff11;&#xff0e;掌握 &#xff2a;&#xff41;&#xff56;&#xff41; 语言的特点、实现机制和体系结构。 &#xff12;&#xff0e;掌握 &#xff2a;&#xff41;&#xff56;&#xff41; 语言中面向对象的特性。…

CP AUTOSAR标准之IPDUMultiplexer(AUTOSAR_CP_SWS_IPDUMultiplexer)(更新中……)

1 简介和功能概述 该规范描述了AUTOSAR基础软件模块I-PDU多路复用器IpduM的功能、API和配置。   PDU复用是指使用PDU(协议数据单元)的相同PCI(协议控制信息)和其SDU(服务数据单元)的多个唯一布局。选择器字段是复用PDU的SDU的一部分。它用于区分复用PDU的内容。   目前,人…

Zabbix对接Elasticsearch(ES)数据库(未成功)

0.需求分析 不管zabbix的后端数据库是oracle还是mysql&#xff0c;当zabbix监控的量级达到了一定程度后&#xff0c;那么对数据库的性能是一个非常严峻的挑战。特别是对历史数据的查询&#xff0c;将会变得非常非常的慢&#xff0c;别告诉我可以建索引优化&#xff0c;当量级达…

图解ReentrantLock的基石AQS-独占锁的获取与释放

大家好&#xff0c;我是呼噜噜&#xff0c;我们之前聊过Java中以互斥同步的方式保证线程安全&#xff1a;Sychronized&#xff0c;这次我们来再聊聊另一种互斥同步的方式Lock&#xff0c;本文会介绍ReentrantLock及其它的基石AQS的源码解析&#xff0c;一个非常重要的同步框架 …

驾驭巨龙:Perl中大型文本文件的处理艺术

驾驭巨龙&#xff1a;Perl中大型文本文件的处理艺术 Perl&#xff0c;这门被亲切称为“实用提取和报告语言”的编程语言&#xff0c;自从诞生之日起&#xff0c;就以其卓越的文本处理能力闻名于世。在面对庞大的文本文件时&#xff0c;Perl的强大功能更是得到了充分的体现。本…

【数据结构与算法】哈希表 详解

开放定址哈希表的存储结构是什么样的&#xff1f; 开放定址哈希表的存储结构&#xff1a; #define SUCCESS 1 #define UNSUCCESS 0 #define DUPLICATE -1int hashsize[] {997, /*...*/}; // 哈希表容量递增表&#xff0c;一个合适的素数序列typedef struct {ElemType *elem;…

案例分享丨全球金融科技独角兽利用悦数图数据库保障金融交易安全

项目背景 这家成立于 2015 年的全球金融科技独角兽公司&#xff0c;为全球超过 10 万家企业提供金融服务接口&#xff0c;支持国际交易和资金转账。该平台可以支持近 180 个国家的本地收款服务&#xff0c;并能够向超过 150 个国家付款。截至 2024 年 1 月&#xff0c;该平台的…