题解 | #天使果冻# 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());
    }
});
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务