Bootstrap

Java算法 数据结构 栈 单调栈实战 模版题 [洛谷-P5788]

目录

题目地址

题目描述

输入输出样例

代码


题目地址

【模板】单调栈 - 洛谷

题目描述

输入输出样例

代码

    static void solve() throws Exception {
    	
        int n=sc.nextInt();
        int[] arr=new int[n+1];
        int[] result = new int[n+1];
        for(int i=1;i<n+1;i++) {
        	arr[i]=sc.nextInt();
        }
        
        Stack <Integer> stack = new Stack<>();
        
        for(int i=n;i>=1;i--) {
        
          // 每次循环只操作一个元素
        	while(!stack.isEmpty()&&arr[stack.peek()]<=arr[i]) {
        		stack.pop();
        	}
        	if(stack.isEmpty()) {
        		result[i]=0;
        	}else {
        		result[i]=stack.peek();
        	}
        	stack.push(i);
        }
        
        for(int i=1;i<=n;i++)dduo(result[i]+" ");

    }
;