AcWing 830. 单调栈 ( JavaScript )
原题链接
简单
作者:
gaobowen
,
2019-11-20 10:20:08
,
所有人可见
,
阅读 855
let stack = new Array(100010);
let top = 0;
//从1开始存储
let push = x => stack[++top] = x;
let pop = () => top--;
let check = x => {
let result = -1;
while (stack[top] >= x) pop();
if(top > 0) result = stack[top];
push(x);
return result;
}
let buf = '';
process.stdin.on('readable', () => {
let chunk = process.stdin.read();
if (chunk) buf += chunk.toString();
});
let getInputArgs = line => line.split(' ').filter(s => s !== '').map(x => parseInt(x));
process.stdin.on('end', () => {
let m = 0;
buf.split('\n').forEach((line, lineIdx) => {
if (lineIdx === 0) {
let a = getInputArgs(line);
m = a[0];
} else if (lineIdx === 1) {
console.log(getInputArgs(line).map(x=> check(x)).join(' ')) ;
}
});
});