1. 程式人生 > >csp201412-1(門禁系統)(java100分)

csp201412-1(門禁系統)(java100分)

問題描述
  濤濤最近要負責圖書館的管理工作,需要記錄下每天讀者的到訪情況。每位讀者有一個編號,每條記錄用讀者的編號來表示。給出讀者的來訪記錄,請問每一條記錄中的讀者是第幾次出現。
輸入格式
  輸入的第一行包含一個整數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)+" "); } } }