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

襄阳seo站内优化360站长平台

襄阳seo站内优化,360站长平台,小城市企业网站建设,wordpress wp_enqueue_style单调栈 问题描述 给定一个长度为 NN 的序列 aa。 第一行输出每个数字其左边第一个比其大的数字,不存在则输出 -1。 第二行输出每个数字其右边第一个比其大的数字,不存在则输出 -1。 第三行输出每个数字其左边第一个比其小的数字,不存在则…

单调栈

问题描述

给定一个长度为 NN 的序列 aa

第一行输出每个数字其左边第一个比其的数字,不存在则输出 -1

第二行输出每个数字其右边第一个比其的数字,不存在则输出 -1

第三行输出每个数字其左边第一个比其的数字,不存在则输出 -1

第四行输出每个数字其右边第一个比其的数字,不存在则输出 -1

update:本题数据于 2025-01-13 加强至 2×1052×105,以杜绝暴力通过。

输入格式

第一行输入一个正整数 NN。(1≤N≤2×105)(1≤N≤2×105)

第二行输入 NN 个正整数,表示序列 aa。(1≤ai≤105,1≤i≤N)(1≤a**i≤105,1≤iN)

输出格式

第一行输出每个数字其左边第一个比其的数字,不存在则输出 -1

第二行输出每个数字其右边第一个比其的数字,不存在则输出 -1

第三行输出每个数字其左边第一个比其的数字,不存在则输出 -1

第四行输出每个数字其右边第一个比其的数字,不存在则输出 -1

样例输入

5
4 3 2 1 5

样例输出

-1 4 3 2 -1
5 5 5 5 -1
-1 -1 -1 -1 1
3 2 1 -1 -1
import java.util.*;public class Main {public static void main(String[] args) {Deque<Integer> stack =new ArrayDeque<>();//使用双端队列,实现单调栈Scanner scan = new Scanner(System.in);int n = scan.nextInt();int[] array = new int[n];for(int i=0;i<n;i++) {array[i] = scan.nextInt();}int[] leftbigger = new int[n];int[] rightbigger = new int[n];int[] leftsmaller = new int[n];int[] rightsmaller = new int[n];Arrays.fill(leftbigger,-1);Arrays.fill(rightbigger,-1);Arrays.fill(leftsmaller,-1);Arrays.fill(rightsmaller,-1);for(int i=0;i<n;i++) {while(!stack.isEmpty() && array[stack.peek()]<=array[i]){//保证stack里存的是大的,不是就要pop出来。stack.pop();}if(!stack.isEmpty()) {leftbigger[i] = array[stack.peek()];}stack.push(i);}stack.clear();for(int i=n-1;i>=0;i--) {while(!stack.isEmpty()&&array[stack.peek()]<=array[i]){//保证stack里存的是大的,不是就要pop出来。stack.pop();}if(!stack.isEmpty()) {rightbigger[i] = array[stack.peek()];}stack.push(i);}stack.clear();for(int i=0;i<n;i++) {while(!stack.isEmpty()&&array[stack.peek()]>=array[i]){//保证stack里存的是小的,不是就要pop出来。stack.pop();}//刚开始栈为空if(!stack.isEmpty()) {leftsmaller[i] = array[stack.peek()];}stack.push(i);}stack.clear();for(int i=n-1;i>=0;i--) {while(!stack.isEmpty()&&array[stack.peek()]>=array[i]){//保证stack里存的是xiao的,不是就要pop出来。stack.pop();}if(!stack.isEmpty()) {rightsmaller[i] = array[stack.peek()];}stack.push(i);}stack.clear();display(leftbigger);display(rightbigger);display(leftsmaller);display(rightsmaller);scan.close();}private static void display(int[] array) {for(int i=0;i<array.length;i++) {System.out.print(array[i]+" ");}System.out.println();}}
http://www.dtcms.com/wzjs/313525.html

相关文章:

  • 深圳关键词seo中国seo关键词优化工具
  • 网站开发的意义和目的百度搜索推广平台
  • 笔记本做网站要什么好上海百度推广排名
  • 文明网i中国精神文明建设门户网站赣州seo外包怎么收费
  • php动态网站开发案例教程电子版百度客服
  • 做招商网站seo优化网站网页教学
  • 个人备案的网站竞价排名做不了农产品网络营销方案
  • 网站被惩罚之后怎么做小红书推广引流软件
  • 什么叫网站优化百度竞价排名是什么方式
  • 山西营销型网站建设京东关键词优化技巧
  • 免费网站软件下载大全动漫北京seo公司公司
  • 网站空间怎么回事公司软文怎么写
  • 网站营销的重点新闻发布的网站
  • 上海正规招聘人才市场seo网络营销技巧
  • 浙江省建设安全监督站的网站辅导班
  • 手机浏览wordpressseo修改器
  • 发电机出租技术支持 东莞网站建设营销网站建设
  • 原创wordpress模板海洋seo
  • 专业建站推广企业seo优化网站快速排名
  • 网站主办者什么意思广告代理
  • 百度网站托管2022最近比较火的热点话题
  • 深圳乐安居网站谁做的产品营销方案策划
  • 网站源码怎么用免费b2b
  • 网站建设公司如何盈利凡客建站
  • 沈阳微营销网站制作免费搜索引擎推广方法有哪些
  • php网站换服务器北京网站推广
  • 深圳网站公司招聘新媒体运营培训课程
  • 电子商务网站建设书籍普通话手抄报文字内容
  • 网站开发需求分析报告百度广告竞价排名
  • php 社交网站模板源码app开发多少钱