试题 算法训练 区间k大数查询 java题解
给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。
第一行包含一个数n,表示序列长度。
第二行包含n个正整数,表示给定的序列。
第三个包含一个正整数m,表示询问个数。
接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。
1 2 3 4 5
2
1 5 2
2 3 2
2
对于30%的数据,n,m<=100;
对于100%的数据,n,m<=1000;
保证k<=(r-l+1),序列中的数<=106。
出自:贵州电子商务职业技术学院
1 import java.util.Arrays;
2 import java.util.Scanner;
3
4 public class Main {
5 public static void main(String args[]){
6 Scanner in=new Scanner(System.in);
7 //输入部分
8 int n=in.nextInt();
9 int arr[]=new int[n];
10 for (int i=0;i<n;i++){
11 arr[i]=in.nextInt();
12 }
13 //查询部分
14 int m=in.nextInt();
15 int result[]=new int[m];
16 int l,r,k;
17 for (int i=0;i<m;i++){
18 l=in.nextInt();
19 r=in.nextInt();
20 k=in.nextInt();
21 result[i]=Search(arr,l,r,k);
22 }
23 for (int i=0;i<result.length;i++){
24 System.out.println(result[i]);
25 }
26 }
27 public static int Search(int arr[],int l,int r,int k){//这个方法是把从原来的数组 里面 的l到r的数据放到temp里面重新进行排序
28 int temp[]=new int[r-l+1];//这里注意因为l和r的下标是从1开始,不是从0开始,所以要加1,防止待会下标越界
29 int index=0;
30 int result=0;
31 for (int i=(l-1);i<r;i++){//当l为1,就代表从0开始,所以 l 要 -1
32 temp[index]=arr[i];
33 index++;
34 }
35 Arrays.sort(temp);//使用java的方法快速的把temp里面的数据进行排序,然后倒序遍历就行了
36 for (int i=temp.length-1;i>=0;i--){//这部分把已经排序好的temp从len-1的下标到0遍历,如果k为0,那就是这波第k大的数值,找个变量保存直接返回
37 k--;
38 if (k==0){
39 result=temp[i];
40 }
41 }
42 return result;
43 }
44 }
试题 算法训练 区间k大数查询 java题解的更多相关文章
- 算法训练 区间k大数查询(题解)
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包 ...
- 蓝桥杯 算法训练 区间k大数查询(水题)
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...
- 算法训练 区间k大数查询
http://lx.lanqiao.org/problem.page?gpid=T11 算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个 ...
- 蓝桥杯--算法训练 区间k大数查询
算法训练 区间k大数查询 时间限制:1.0 ...
- 蓝桥杯算法训练 区间k大数查询
算法训练 区间k大数查询 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个 ...
- 蓝桥网试题 java 算法训练 区间k大数查询
-------------------------------------------------------------------------- 数组也有sort方法 尽量把输入和操作分开写 -- ...
- Java实现 蓝桥杯 算法训练 区间k大数
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二 ...
- 算法训练 区间K大数
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...
- 区间K 大数查询
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列 ...
随机推荐
- Centos7.4 安装MySQL 5.7.21 (通用二进制包)
1.下载安装包 MySQL 官方下载地址:https://dev.mysql.com/downloads/mysql/ MySQL 5.7官方安装文档:https://dev.mysql.com/do ...
- Golang入门学习(四):常用的函数汇总
文章目录 2.4 常用的内置函数 2.4.1 字符串常用内置函数 2.4.2 常用的时间和日期相关函数 2.4.3 内置函数 2.4 常用的内置函数 2.4.1 字符串常用内置函数 https://g ...
- 使用GitHub Pages + docsify快速搭建一个站点
话不多说,先看效果: https://bytesfly.github.io/blog 为什么需要一个站点 肯定有人会问,既然有类似 博客园 这样优秀的平台来写博客,为什么还需要自己搭建站点呢? 放在G ...
- XSS注入
XSS 原理: 程序对输入和输出没有做合适的处理,导致"精心构造"的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害. 分类 : 危害:存储型 > 反射型 > ...
- HDU 6170 FFF at Valentine(强联通缩点+拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6165 题意:给你一个无环,无重边的有向图,问你任意两点,是否存在路径使得其中一点能到达另一点 解析:强 ...
- 微信小程序+腾讯云直播的实时音视频实战笔记
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- php超时报错: Maximum execution time of 300 seconds exceeded
php.ini里max_execution_time = 30,原因是这个脚本执行时间太小了,增加一些,或者改成0不限制 可以增加代码: set_time_limit(0);
- CentOS下安装libmcrypt失败
libmcrypt是什么?? 是加密算法扩展库---支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SA ...
- 5ucms 调用当前文章的评论,以及评论列表
<div class="center_"> <h2>共有 {field:comments} 位网友发表了评论</h2> <ul class ...
- PC+PLC通过Modbus协议构建工控系统
一. 概述 工业设备采用HMI+PLC控制是比较常见的方案,随着工业自动化的要求越来越高,现在很多设备都要求接入企业MES系统,MES系统一般为WEB系统,接口形式大部分为HTTP协议,这种传统方案和 ...