• 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();
        }
    }
    
  • 相关阅读:
    linux软件安装
    shell脚本
    ssh密钥登录及远程执行命令
    shell编程
    vi编辑器
    linux入门
    《玩转Bootstrap(JS插件篇)》笔记
    SharePoint BI
    Apache-ActiveMQ transport XmlMessage
    C#操作AD及Exchange Server总结(二)
  • 原文地址:https://www.cnblogs.com/jiaohuadehulike/p/14294963.html
Copyright © 2020-2023  润新知