题解 | #天使果冻# js 版
天使果冻
https://ac.nowcoder.com/acm/problem/219641
核心是用一个数组维护前缀和
let len = parseInt(readline());
let arr = readline().split(" ").map(Number);
let questionCount = parseInt(readline());
let questionArr = [];
for (let i = 0; i < questionCount; i++) {
questionArr.push(parseInt(readline()));
}
// 预处理
let max1 = -Infinity, max2 = -Infinity;
let prefixMax2 = new Array(len);
for (let i = 0; i < len; i++) {
if (arr[i] >= max1) {
max2 = max1;
max1 = arr[i];
} else if (arr[i] > max2) {
max2 = arr[i];
}
prefixMax2[i] = max2;
}
// 查询
questionArr.forEach((item) => {
if (item < 2) {
console.log("-1"); // 长度小于 2 时,无第二大值
} else {
console.log(prefixMax2[item - 1].toString());
}
});