CCF-20161201-中间数(100分)
来源:互联网 发布:德拉蒙德格林2016数据 编辑:程序博客网 时间:2024/05/18 04:29
package CCF;import java.util.Arrays;import java.util.Scanner;/** 问题描述 在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。 给定一个整数序列,请找出这个整数序列的中间数的值。输入格式 输入的第一行包含了一个整数n,表示整数序列中数的个数。 第二行包含n个正整数,依次表示a1, a2, …, an。输出格式 如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。样例输入62 6 5 6 3 5样例输出5样例说明 比5小的数有2个,比5大的数也有2个。样例输入43 4 6 7样例输出-1样例说明 在序列中的4个数都不满足中间数的定义。样例输入53 4 6 6 7样例输出-1样例说明 在序列中的5个数都不满足中间数的定义。评测用例规模与约定 对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。 * @author Vivinia * * 2017年10月15日 */public class midNum {static int[] num;static int n,i,mid,left,right;public static void main(String[] args) {Scanner input=new Scanner(System.in);n=input.nextInt();num=new int[n];for(i=0;i<n;i++)num[i]=input.nextInt();input.close();Arrays.sort(num); mid=num[n/2]; //取中间元素,中间元素要么是中间数,要么就不是,取决于两边剩余个数for(i=0;i<n/2;i++) { //查找左边和中间数不相等的个数if(num[i]!=mid)left++;}for(i=n/2;i<=n-1;i++) { //查找右边和中间数不相等的个数if(num[i]!=mid)right++;}if(left==right)System.out.println(mid);elseSystem.out.println("-1");}}
原谅我这个小渣渣,Java白学了。记得当初学习Java老师应该讲到IO流那,又加上刚学习比较懵逼,不懂什么new一只小狗汪汪叫是个什么鬼,所以导致一些东西学的很不好。今天才意识到之前写的代码Scanner用完都没有关闭,百度一下说是不关闭会消耗内存,当然以前写的都是小demo,所以并没有出现问题。怪不得一直纳闷Scanner定义的变量为什么一直显示黄色的警告标志,和变量没有使用一个样,我还想eclipse这是抽什么风,明明都用了还警告我,哈哈。
另外,当一个比较简单的demo一直在修改时不断地打补丁(非得用自己头脑风暴想到的那种方法),一定要及时切换思路,不然真进死胡同,明明很简单的问题却被弄得很复杂,比如这个题,真不想说什么了,这两天不宜敲代码。
阅读全文
0 0
- CCF-20161201-中间数(100分)
- CCF CSP 201612-1 中间数(Java-100分)
- ccf 201612-1 中间数 (100分)
- CCF201612-1 中间数(100分)
- 中间数-CCF往届题
- CCF 中间数解析
- ccf试题 中间数
- CCF 中间数
- CCF 中间数
- CCF CSP 中间数
- ccf-中间数
- ccf 中间数
- ccf 中间数
- ccf-2016121-中间数
- CCF 中间数
- CCF中间数
- CCF201612-1 中间数(解法二)(100分)
- CCF201612-1 中间数(解法三)(100分)
- JS阻止事件冒泡兼容各浏览器
- 分布式系统的高效运维要点
- 截取视频图片
- poj 1236 Network of Schools 强连通分量
- POJ3259 判断是否存在负权环
- CCF-20161201-中间数(100分)
- 通过 SSH 实现 TCP / IP 隧道(端口转发)
- SGeo中国中心:开源GIS软件、在线教程、数据相关资料
- Servlet (六 Session)
- 欢迎使用CSDN-markdown编辑器
- 第3章 数据的输入与输出
- Python网络数据采集总结——未完待续
- Tensorboard命令未找到问题的解决
- cnn-text-classification-tf-chinese 项目