LeetCode-2202 K次操作后最大的顶端元素(JAVA)

题目要求:

给你一个下标从 0 开始的整数数组 nums ,它表示一个  ,其中 nums[0] 是栈顶的元素。

每一次操作中,你可以执行以下操作 之一 :

  • 如果栈非空,那么 删除 栈顶端的元素。
  • 如果存在 1 个或者多个被删除的元素,你可以从它们中选择任何一个,添加 回栈顶,这个元素成为新的栈顶元素。

同时给你一个整数 k ,它表示你总共需要执行操作的次数。

请你返回 恰好 执行 k 次操作以后,栈顶元素的 最大值 。如果执行完 k 次操作以后,栈一定为空,请你返回 -1 。

示例 1:

输入:nums = [5,2,2,4,0,6], k = 4
输出:5
解释:
4 次操作后,栈顶元素为 5 的方法之一为:
- 第 1 次操作:删除栈顶元素 5 ,栈变为 [2,2,4,0,6] 。
- 第 2 次操作:删除栈顶元素 2 ,栈变为 [2,4,0,6] 。
- 第 3 次操作:删除栈顶元素 2 ,栈变为 [4,0,6] 。
- 第 4 次操作:将 5 添加回栈顶,栈变为 [5,4,0,6] 。
注意,这不是最后栈顶元素为 5 的唯一方式。但可以证明,4 次操作以后 5 是能得到的最大栈顶元素。

示例 2:

输入:nums = [2], k = 1
输出:-1
解释:
第 1 次操作中,我们唯一的选择是将栈顶元素弹出栈。
由于 1 次操作后无法得到一个非空的栈,所以我们返回 -1 。

题解:

这道题让我们操作一个栈,我们可以将元素弹出或是将弹出的元素的再次压入栈,每次弹出或压入算一个操作,求解出经过k次操作后可以得到的最大元素。

我们经过k次操作后有几种情况,当k的值大于栈的大小时我们可以得到栈中所有的元素,因此直接遍历栈就可以得到最大值。

而当k小于栈的大小时,我们可以得到k-1前的所有元素,和第k+1个元素(即所有的操作都在弹出元素。这种情况下,我们直接找到前k-1个元素中的最大值再和第k+1个元素进行对比即可,大的就是最大值。

还有一种特殊情况,当栈中只有一个元素,且操纵数为奇数时,我们无论怎么操纵都会将唯一的元素弹出,因此此时返回-1.

经过这样的分析,本题的逻辑就很清晰了,因此代码如下:

class Solution {public int maximumTop(int[] nums, int k) {int n = nums.length;if(k%2==1&&n==1) return -1;int max = 0;int k1=0;int k2=0;for(int i=0;i<n;i++){if(i<k-1) k1 = Math.max(k1,nums[i]);if(i==k) k2 =nums[i];max=Math.max(max,nums[i]);}if(k>n)return max;return Math.max(k1,k2);}
}

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

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

相关文章

分布式之分布式事务详解

分布式事务与实战运用 什么是分布式事务&#xff1f; 业务场景&#xff1a;用户A转账100元给用户B&#xff0c;这个业务比较简单&#xff0c;具体的步骤&#xff1a; 1、用户A的账户先扣除100元 2、再把用户B的账户加100元 如果在同一个数据库中进行&#xff0c;事务可以保证…

209基于matlab的无人机路径规划

基于matlab的无人机路径规划&#xff0c;包括2D路径和3D路径&#xff0c;三种优化算法&#xff0c;分别是蝙蝠算法&#xff08;BA&#xff09;、蝙蝠算法融合差分进化算法(DEBA)、结合人工势场方法的改进混沌蝙蝠算法(CPFIBA)。输出距离迭代曲线和规划的路径。程序已调通&#…

云计算探索-如何在服务器上配置RAID(附模拟器)

一&#xff0c;引言 RAID&#xff08;Redundant Array of Independent Disks&#xff09;是一种将多个物理硬盘组合成一个逻辑单元的技术&#xff0c;旨在提升数据存取速度、增大存储容量以及提高数据可靠性。在服务器环境中配置RAID尤其重要&#xff0c;它不仅能够应对高并发访…

【跟小嘉学 Linux 系统架构与开发】二、Linux发型版介绍与基础常用命令介绍

系列文章目录 【跟小嘉学 Linux 系统架构与开发】一、学习环境的准备与Linux系统介绍 【跟小嘉学 Linux 系统架构与开发】二、Linux发型版介绍与基础常用命令介绍 文章目录 系列文章目录[TOC](文章目录) 前言一、 Linux 发行版(Linux distribution)介绍二、Centos 虚拟机初始化…

Yarn的安装和使用(2):使用及问题解决

Yarn是JavaScript的依赖管理工具&#xff0c;它与npm类似&#xff0c;但提供了一些额外的性能优化和一致性保证。 Yarn的使用&#xff1a; 初始化项目&#xff1a; yarn init 此命令会引导您创建一个新的package.json文件&#xff0c;用于记录项目的元信息和依赖。 添加依赖&…

java 接口

接口 既然接口中的所有方法都需要重写&#xff0c;那么我不干脆直接写一个类&#xff0c;不写接口就完事了呢 接口定义的是一种特征&#xff0c;告诉使用者和程序&#xff0c;这个实现了这个类型的接口拥有哪些功能 如果一个类实现了runnable&#xff0c;那么这个类就可以用来定…

【Linux在程序运行时打印调用栈信息(函数名,文件行号等)】

在程序运行时打印相关调用栈信息&#xff08;函数名&#xff0c;文件行号等&#xff09;,便于梳理调用逻辑等 //stack.c #include <stdio.h> #include <execinfo.h> #include <stdlib.h> #include <string.h> #include <stdbool.h>#define MAX_…

Flutter与iOS和Android原生页面交互

一、Flutter 与原生页面交互的重要性和应用场景 Flutter 是一个由 Google 开发的开源框架&#xff0c;用于创建跨平台的移动、Web 和桌面应用程序。Flutter 允许开发者使用一套代码库为 Android 和 iOS 等平台构建美观、高性能的应用程序。然而&#xff0c;尽管 Flutter 提供了…

如何通过Elasticsearch实现搜索的关键词达到高亮的效果

高亮 首先介绍一下什么是搜索的关键词达到高亮的效果&#xff0c;如图所示 当在百度里面搜索elasticsearch的时候&#xff0c;可以看到出现的搜索结果里面elasticsearch这个关键词明显与其他的条文不一样&#xff0c;用红颜色凸显了“高亮效果”。当我们想要在自己的项目里面…

1、初识drf

drf的学习需要学习者有django基本使用知识。 文章目录 什么是drf&#xff0c;有什么作用CBV是什么初步使用drf 下载以及django创建项目django最小启动内容修改setting修改 url 编写drf视图编辑url测试返回结果 什么是drf&#xff0c;有什么作用 drf(django rest-framework),让…

C#面:有几种连接到数据库的方式,请列举出来并分别说明它们可以连接哪些数据库

ADO.NET 连接&#xff1a; ADO.NET 是 .NET Framework 提供的一种数据访问技术&#xff0c;可以连接多种类型的数据库&#xff0c;包括但不限于SQL Server、Oracle、MySQL 等。通过 ADO.NET 连接&#xff0c;可以使用各种提供程序&#xff08;如SqlClient、OracleClient、OleD…

探索Vue脚手架:构建现代化Web应用的利器

随着现代Web应用程序的不断发展&#xff0c;前端开发者们需要更高效、更灵活的工具来构建复杂的用户界面。在这个领域中&#xff0c;Vue.js作为一种流行的JavaScript框架&#xff0c;为开发者提供了丰富的生态系统和强大的工具。而Vue脚手架&#xff0c;作为Vue.js开发过程中的…

手机有线投屏到直播姬pc端教程

1 打开哔哩哔哩直播姬客户端并登录(按下图进行操作) 2 手机用usb数据线连接电脑(若跳出安装驱动的弹窗点击确定或允许),usb的连接方式为仅充电(手机差异要求为仅充电),不同品牌手机要求可能不一样,根据实际的来 3 在投屏过程中不要更改usb的连接方式(不然电脑会死机需要重启) …

MultiPath HTTP:北大与华为合作部署FLEETY

当前的终端基本都能支持蜂窝网络和wifi网络&#xff0c;然而&#xff0c;不同的网络通路都不可避免的会出现信号不好或者其他因素引起的通路性能(吞吐量、时延等)下降。为了能够提升终端业务体验&#xff0c;很多不同的MultiPath方案被提出&#xff0c;其中&#xff0c;包括应用…

使用Detours进行HOOK

文章目录 Detours介绍Detours配置Detours进行Sleep Hook Detours介绍 Detours是微软研究院开发的一款软件工具&#xff0c;用于Windows平台上的应用程序重定向和修改。 它可以在运行时修改应用程序的执行路径&#xff0c;允许开发人员注入自定义代码来改变应用程序的 行为&…

vulhub中Apache Solr 远程命令执行漏洞复现(CVE-2017-12629)

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发&#xff0c;主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。此次7.1.0之前版本总共爆出两个漏洞&#xff1a;[XM…

勒索病毒钱包地址与邮箱地址集合

勒索病毒攻击已经成为了全球最大的安全威胁之一&#xff0c;99%以上的勒索病毒交付赎金都是使用BTC&#xff0c;BTC已经涨到一万多美元了&#xff0c;最近一年针对企业的勒索病毒攻击也越来越多&#xff0c;勒索病毒黑产团队在加密受害者文件之后一般会留下一些联系方式&#x…

[Flutter]打包IPA

1.直接使用Xcode运行iOS工程 不用flutter构建&#xff0c;在Xcode中是可以独立进行构建运行和打包发布的。 1).运行项目 先将flutter的build清理 $ flutter clean $ flutter pub get 然后立即用XCode打开iOS工程运行 运行会报错&#xff1a; error: The sandbox is not …

分块大小

两个指针 复杂度 \(O(u*n\frac{n^2}{u})\) 根据均值不等式&#xff0c; \(u*n\frac{n^2}{u}\) 在 \(u*n\frac{n^2}{u}\) 时取最小值 即 \(u\sqrt{n}\) 三个指针&#xff08;带修&#xff09; 复杂度 \(O(u*n\frac{n^2}{u}\frac{n^3}{u^2})\) 显然&#xff0c; \(\frac{n^2}…

C刊级 | Matlab实现DBO-BiTCN-BiGRU-Attention蜣螂算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测

C刊级 | Matlab实现DBO-BiTCN-BiGRU-Attention蜣螂算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测 目录 C刊级 | Matlab实现DBO-BiTCN-BiGRU-Attention蜣螂算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测效果一览基本介绍模型描述程序…