ccf201612-1
来源:互联网 发布:宁波知豆电动汽车公司 编辑:程序博客网 时间:2024/05/21 17:50
问题:
问题描述:
在一个整数序列a1,a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。
给定一个整数序列,请找出这个整数序列的中间数的值。
输入格式:
输入的第一行包含了一个整数n,表示整数序列中数的个数。
第二行包含n个正整数,依次表示a1, a2, …, an。
输出格式:
如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。
样例输入:
6
2 6 5 6 3 5
样例输出:
5
样例说明:
比5小的数有2个,比5大的数也有2个。
样例输入:
4
3 4 6 7
样例输出:
-1
样例说明:
在序列中的4个数都不满足中间数的定义。
样例输入:
5
3 4 6 6 7
样例输出:
-1
样例说明:
在序列中的5个数都不满足中间数的定义。
评测用例规模与约定:
对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。
思路:先对给出的整数进行排序,排序之后利用循环对中间数之前或之后的数进行统计,将中间数之前的结果统计为a,将中间数之后的结果统计为b,如果a=b,则可以判定array[number/2]为要求的中间数,否则输出-1。
题解:
import java.util.*;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);int number,i,j,a=0,b=0,temp=0;number = sc.nextInt();int array[]= new int[number];for(i=0;i<number;i++){array[i]=sc.nextInt();}for(i=0;i<number;i++)for(j=0;j<number-i-1;j++){if(array[j]>array[j+1]){temp=array[j];array[j]=array[j+1];array[j+1]=temp;}}for(i=0;i<number/2;i++){if(array[i]<array[number/2]){a++;}}for(i=number/2+1;i<number;i++){if(array[i]>array[number/2]){b++;}}if(a==b) System.out.println(array[number/2]);else System.out.println(-1);sc.close();}}
阅读全文
0 0
- CCF201612-1
- ccf201612-1
- CCF201612-1中间数
- CCF201612-1-中间数
- CCF201612-1中间数
- CCF201612-1 中间数
- CCF201612-1 中间数
- CCF201612-1 中间数(100分)
- CCF201612-1 中间数(解法二)(100分)
- CCF201612-1 中间数(解法三)(100分)
- CCF201612试题
- CCF201612-2
- ccf201612-2
- CCF201612-2火车购票
- CCF201612-2工资计算
- CCF201612-2工资计算
- CCF201612-3权限查询
- CCF201612-2-工资计算
- 第5章 构建Spring Web 应用程序 --笔记1
- 《深入探索C++对象模型》第二章:构造函数语意学(下)
- jQuery插件----表单验证
- Java 8新特性终极指南
- Caused by: java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
- ccf201612-1
- u-boot第一阶段分析(四)
- [RK3288][Android6.0] WiFi的HAL层加载问题
- typeof和instanceof的区别以及如何判断一个数组
- Java数据结构Map遍历和排序
- 任意竞赛图都有哈密顿path(A Tournament has a Hamiltonian path)
- WPF使用MediaElement显示gif图片
- context:annotation-config 错误解决办法
- 一分钟了解“Matlab绘图三维数据”