蓝杯二十八

算法训练 区间k大数查询 

时间限制:1.0s  内存限制:256.0MB

提交此题  锦囊1  锦囊2

问题描述

给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。

输入格式

第一行包含一个数n,表示序列长度。

第二行包含n个正整数,表示给定的序列。

第三个包含一个正整数m,表示询问个数。

接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。

输出格式

总共输出m行,每行一个数,表示询问的答案。

样例输入

5

1 2 3 4 5

2

1 5 2

2 3 2

样例输出

4

2

数据规模与约定

对于30%的数据,n,m<=100;

对于100%的数据,n,m<=1000;

保证k<=(r-l+1),序列中的数<=106。

#include <iostream>

using namespace std;

int main()

{

    int number;

    cin >> number;

    int numbers[100000];

    for ( int i = 1; i <= number; i++)

    {

        cin >> numbers[i];

    }

    int round;

    cin >> round;

    int temp;

    int numbersTemp[100000];    //替换数组

    for (int  i = 1; i <= round; i++)

    {

        int a, b, c;        区间[a,b]内,查询第c大的数。

        cin >> a >> b >> c;

  for (int i = a; i <= b; i++)

        {

            numbersTemp[i - a + 1] = numbers[i];

            // 将numbers中需要查询的段 存放进替换数组中 从1开始

        }

        //接下来是冒泡排序法

        for (int j = 1; j <= b - a + 1; j++)

        {

            for (int m = 1; m <= b - a + 1 - j; m++)

            {

                if (numbersTemp[m] < numbersTemp[m + 1])

                {

temp = numbersTemp[m];

                    numbersTemp[m] = numbersTemp[m + 1];

                    numbersTemp[m + 1] = temp;

                }

            }

        } 

        //输出第c大的数。

        cout << numbersTemp[c] << endl;

    }

        return 0;

}


图片发自简书App

图片发自简书App

图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,916评论 0 33
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 2,075评论 0 2
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,246评论 0 38
  • 有时,已婚者劝单身的你赶快结婚并不是真的盼望你从此幸福快乐,而是不想看着你继续独一无二、闪闪发光下去,以致于你的超...
    周庆新爱吃肉阅读 530评论 0 0
  • 前些天,在海边看着垂垂老矣的两位老人在散步,他们手牵着手的样子,真好。不管这里面是不是存在爱情,但是这也许就是最好...
    高桥先生阅读 593评论 1 0

友情链接更多精彩内容