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]+" ");
}