题目
编号: 201903-1
试题名称: 小中大
时间限制: 1.0s
内存限制: 512.0MB
题目背景
在数据分析中,最小值最大值以及中位数是常用的统计信息。
题目描述
老师给了你n个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重复的数据。请统计出这组测量数据中的最大值、中位数以及最小值,并按照从大到小的顺序输出这三个数。
输入格式
从标准输入读入数据。
第一行输入一个整数n,在第二行中存在n个有序的整数,表示测量数据,可能为升序或降序排列,可能存在连续多个整数相等,整数与整数之间使用空格隔开。
输出格式
输出到标准输出。
包含一行,包括最大值、中位数以及最小值共三个数,并按照从大到小的顺序输出。数据与数据之间使用空格隔开。对于整数请直接输出整数,对于可能出现的分数,请输出四舍五入保留1位小数的结果。
样例数据
样例1输入
1 | 3 |
样例1输出4 2 -1
样例1解释
4为最大值,2为中位数,-1为最小值。
样例2输入
1 | 4 |
样例2输出4 1 -2
样例2解释
4为最大值,(-1+3)÷2=1为中位数,-2为最小值。
子任务
测试点 | n | 测量数据的绝对值 | 测量数据是否均相同 |
---|---|---|---|
1,2 | $\le 10^3$ | $\le 10^7$ | 是 |
3,4,5,6 | $\le 10^3$ | $\le 10^7$ | 否 |
7,8 | $\le 10^5$ | $\le 10^7$ | 是 |
9,10,11,12,13,14,15,16,17,18,19,20 | $\le 10^5$ | $\le 10^7$ | 否 |
解答
分析
由于数列本身有序,所以直接获取收尾数据比较大小就可以获得最大、最小值。中值根据n的奇偶情况,奇数情况直接获取中间数据,偶数情况获取中间两个数据计算品均值。由于只需要上述几个数据,所以其他数据可以直接读取进来就丢掉,节省空间复杂度为O(1)。
题目要求四舍五入保留一位小数,但计算结果要么是整数要么就只有小数点后0.5,所以不用考虑四舍五入,只需要考虑小数和整数情况的输出格式即可。
代码
1 |
|