csp201412-1(门禁系统)(java100分)

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/qq_24681499/article/details/80957092

问题描述
  涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。
输入格式
  输入的第一行包含一个整数n,表示涛涛的记录条数。
  第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。
输出格式
  输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。
样例输入
5
1 2 1 1 3
样例输出
1 1 2 3 1
评测用例规模与约定
  1≤n≤1,000,读者的编号为不超过n的正整数。


思路:

用HashMap来存储每个人是第几次来。如果不懂HashMap的请自行百度。
这个题可以用更简单的办法来做。因为读者的编号为不超过n的正整数。所以可以初始化一个a[1001]的数组 ,然后每个人到来都让 a[num]++;然后输出 a[num]


Java代码:

package csp_201412_1;
import java.util.HashMap;
import java.util.Scanner;
public class First {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();

        for(int i = 0;i<n;i++) {
            int temp=sc.nextInt();
            if(map.containsKey(temp)) {
                map.replace(temp,map.get(temp)+1);
            }
            else {
                map.put(temp, 1);
            }
            System.out.print(map.get(temp)+" ");
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_24681499/article/details/80957092