arrays - 在执行完 K 次操作后最大化堆栈的顶部元素
问题描述
给定一个包含 N 个整数的堆栈。您需要在执行完 K 个操作后最大化堆栈的顶部元素。在一个操作中,您可以从堆栈中弹出一个元素或将任何弹出的元素压入堆栈。如果堆栈在执行 K 次操作后变空并且没有其他方法使堆栈不为空,则打印 -1。
输入格式:
第一行输入由两个空格分隔的整数 N 和 K 组成。第二行输入由 N 个空格分隔的整数组成,表示堆栈的元素。第一个元素代表栈顶,最后一个元素代表栈底。
输出格式 :
在执行完 K 次操作后,打印堆栈的最大可能顶部元素。
样本输入
6 4
1 2 4 3 3 5
样本输出
4
解决方案
在 k-1 个操作中弹出 k-1 个元素。现在对于最后一个操作,您可以再弹出一个元素,也可以从弹出的元素中推送一个元素。
所以比较这两种情况,如果你在第k个操作中弹出元素,顶部的元素应该比所有前k-1个弹出元素都多,否则对于第k个操作,从k-1个弹出元素中推送最大的元素。
推荐阅读
- java - 从 maven 插件中排除传递依赖
- jquery - 第四行到底发生了什么?
- matlab - 如何在 mlreportgen.dom.* 中进行自定义水平对齐?
- firebase - Firestore 在失去和重新获得互联网连接后停止更新
- scala - 如何使用 slick 3.2 + 在 select 子句中编写嵌套查询
- javascript - 如何使用 JavaScript/Jquery 逐一输出查询结果
- reactjs - 如何在 React js 中加入工具提示功能
- java - 从字符串中获取 Lat 和 Long
- solr - 带有typo3的solr没有索引
- java - 运算符不存在:整数 = 字符变化