给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
2015-09-12 21:05
3531 查看
问题描述
给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
输入格式
输入的第一行包含一个整数n,表示给定数字的个数。
第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。
输出格式
输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。
样例输入12
5
2 3 3 1 3 4 2 5 2 3 5
样例输出
3 4
2 3
5 3
1 1
4 1
评测用例规模与约定 1
≤ n ≤ 1000,给出的数都是不超过1000的非负整数。
给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
输入格式
输入的第一行包含一个整数n,表示给定数字的个数。
第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。
输出格式
输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。
样例输入12
5
2 3 3 1 3 4 2 5 2 3 5
样例输出
3 4
2 3
5 3
1 1
4 1
评测用例规模与约定 1
≤ n ≤ 1000,给出的数都是不超过1000的非负整数。
package com.lck; import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); int num = 0; while(true){ num = scan.nextInt(); if(num>=1 && num<=1000) break; } Map<Integer,Integer> map = new TreeMap<Integer,Integer>(); int[]a = new int[num]; for (int i = 0; i < a.length; i++) { a[i] = scan.nextInt(); } for(int x:a){ Integer index = map.get(x); if(index==null) map.put(x, 1); else map.put(x, ++index); } List list = new ArrayList(map.entrySet()); Collections.sort(list, new Comparator() { @Override public int compare(Object o1, Object o2) { Map.Entry obj1 = (Map.Entry)o1; Map.Entry obj2 = (Map.Entry)o2; return ((Integer) obj2.getValue()).compareTo((Integer) obj1.getValue()); } }); // System.out.println(list); Iterator ii = list.iterator(); while (ii.hasNext()) { System.out.println(ii.next().toString().replace("=", " ")); } } }
相关文章推荐
- 通过gdb快速定位“段错误”的位置
- zxing实现二维码解析和生成
- QQ空间留言的JS
- 【转】关于微信开发者平台移动应用获取签名解决问题
- 测试你是否和LTC水平一样高 1407 (简单数学题)
- 超轻量级的安卓SlidingMenu库
- linux操作系统中的文件目录结构详细介绍
- Docker 根本不适合用于本地开发环境
- MATLAB中find函数用法
- The Suspects 并查集
- posix线程栈
- 判断浏览器是否安装pdf插件
- Android JNI的动态注册
- 终于拿到了软件开发的第一桶金
- ViewPager+可缩放ImageView的使用
- TCP粘包,UDP不存在粘包问题
- javaScript
- Hadoop/spark安装实战(系列篇2)安装虚拟机、PieTTY、winscp、JDK、配置DNS、SSH免密码登录
- 输入n ,打印出n*n的螺旋矩阵(算法)
- phg不能识别Trilinos