算法训练 区间k大数查询

微信公众号:CodeFun

思路

  • 注意题目中给出的数据是无序的
  • 所以在给定区间询问的时候,可以将数push到优先队列中,查询到该区间中第k大数,也可以排序后在该区间查询第k大数

code

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,x,y,z,t;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++) cin>>a[i];
    cin>>t;
    while(t--){
        cin>>x>>y>>z;
        priority_queue<int> q;
        for(int i=x-1;i<y;i++) q.push(a[i]);
        while(--z) q.pop();
        cout<<q.top()<<endl;
    }
    return 0;
}
发布了86 篇原创文章 · 获赞 9 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览