zoukankan      html  css  js  c++  java
  • CSP认证201503-2-数字排序-(Java)100分

    数字排序

    试题编号: 201503-2
    试题名称: 数字排序
    时间限制: 1.0s
    内存限制: 256.0MB
    问题描述
      给定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的非负整数。
    Java满分
    在这里插入图片描述
    Java代码

    import java.util.*;
    
    public class Main {
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int[] count = new int[1001];
            for ( int i = 0; i < n; i++ ){
                int index = sc.nextInt();
                count[index]++;
            }
    
            Map<Integer, Integer> map = new LinkedHashMap<>();
            for ( int i = 1; i <= 1000; i++ )
                if ( count[i] > 0 )
                    map.put(i, count[i]);
    
            List<Map.Entry<Integer, Integer>> list = new LinkedList<>(map.entrySet());
            list.sort(Map.Entry.comparingByValue(Comparator.reverseOrder()));  // 根据值排序(逆序)
            for ( int i = 0; i < list.size(); i++) {
                int key = list.get(i).getKey();
                int value = list.get(i).getValue();
                System.out.println(key + " " + value);
            }
    
            sc.close();
        }
    }
    
  • 相关阅读:
    jquery动画效果---animate()--滚屏
    一个前端的自我修养
    开发和测试
    jquery.find()
    c99和c++11的差异之一
    容器经典图
    C/C++中的##用法
    【心学.悟道】千圣皆过影,良知乃吾师
    memcpy, memset代码改写的方式
    三大软件原则
  • 原文地址:https://www.cnblogs.com/jiaohuadehulike/p/14294963.html
Copyright © 2011-2022 走看看