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