AcWing 830. 单调栈JAVA
原题链接
简单
作者:
理想二旬.
,
2021-05-07 16:00:55
,
所有人可见
,
阅读 323
JAVA 代码
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
class Main{
private static int N = 100010;
private static int[] stk = new int[N];
private static int tt = 0; //栈顶
public static void main(String[] args) throws IOException{
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] str1 = reader.readLine().split(" ");
String[] str2 = reader.readLine().split(" ");
int n = Integer.parseInt(str1[0]);
for(int i = 0; i < n; i++){
int x = Integer.parseInt(str2[i]);
while(tt > 0 && stk[tt] >= x) tt--;
if(tt > 0) writer.write(stk[tt] + " ");
else writer.write(-1 + " ");
tt++;
stk[tt] = x;
}
writer.flush();
reader.close();
writer.close();
}
}