蓝桥杯-区间k大数查询

来源:互联网 发布:人工智能与经济学 编辑:程序博客网 时间:2024/05/16 07:36

这里写图片描述

从题目上看,用int类型数据就够了,没必要考虑long这些~~
在题目中,直接用了Collection工具类中的sort方法,是从小到大排序,据了解,Java自带的排序算法应该是优化过的快速排序,算法可靠。

package 区间k大数查询;import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;public class Main {    public static void main(String[] args){        int n, m, l, r, k;        Scanner sc = new Scanner(System.in);        n = sc.nextInt();        int a[] = new int[n];        for (int i=0;i<n;i++){            a[i] = sc.nextInt();        }        m = sc.nextInt();        for (int i=0;i<m;i++){            l = sc.nextInt();            r = sc.nextInt();            k = sc.nextInt();            ArrayList<Integer> list =  new ArrayList<Integer>();            for (int j=l-1;j<r;j++){                list.add(a[j]);                 //System.out.println("add:"+a[j]);            }            Collections.sort(list);//          for (int mm=0;mm<list.size();mm++){//              System.out.println("list "+mm+"="+list.get(mm));//          }//          System.out.println("final:"+list.get(list.size()-k));            System.out.println(list.get(list.size()-k));        }    }}
0 0